Advertisement
Guest User

Untitled

a guest
Feb 21st, 2019
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.01 KB | None | 0 0
  1. import "dotenv/config";
  2. import bcrypt from "bcrypt";
  3.  
  4. const passport = require("passport"),
  5. localStrategy = require("passport-local").Strategy,
  6. JWTstrategy = require("passport-jwt").Strategy,
  7. ExtractJWT = require("passport-jwt").ExtractJwt;
  8. import User from "../models/user";
  9.  
  10. passport.use(
  11. "register",
  12. new localStrategy(
  13. {
  14. usernameField: "username",
  15. passwordField: "password",
  16. passReqToCallback: true,
  17. session: false
  18. },
  19. async (req, username, password, done) => {
  20. let user;
  21. try {
  22. user = await User.findOne({
  23. username: username
  24. });
  25. if (user) {
  26. console.log("username already taken");
  27. return done(null, false, {
  28. message: "Username already taken"
  29. });
  30. } else {
  31. user = await new User({
  32. firstname: req.body.firstname,
  33. lastname: req.body.lastname,
  34. email: req.body.email,
  35. username: req.body.username,
  36. password: password
  37. }).save();
  38. console.log("New user created!");
  39. }
  40. return done(null, user);
  41. } catch (err) {
  42. done(err);
  43. }
  44. }
  45. )
  46. );
  47.  
  48. passport.use(
  49. "login",
  50.  
  51. new localStrategy(
  52. {
  53. usernameField: "username",
  54. passwordField: "password",
  55. session: false
  56. },
  57. async (username, password, done) => {
  58. let user;
  59. try {
  60. user = await User.findOne({ username });
  61.  
  62. if (!user) {
  63. return done(null, false, {
  64. message: "Wrong username/password details"
  65. });
  66. } else {
  67. bcrypt.compare(password, user.password).then(response => {
  68. if (response !== true) {
  69. console.log("login details are incorrect");
  70. return done(null, false, {
  71. message: "login details are incorrect"
  72. });
  73. }
  74. console.log("user logged in");
  75. return done(null, user);
  76. });
  77. }
  78. } catch (err) {
  79. done(err);
  80. }
  81. }
  82. )
  83. );
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement