Guest User

Untitled

a guest
May 18th, 2018
171
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.63 KB | None | 0 0
  1. events.js:183
  2. throw er; // Unhandled 'error' event
  3. ^
  4. CastError: Cast to ObjectId failed for value "john" at path "_id" for model "User"
  5.  
  6. module.exports = function(passport) {
  7. let opts = {};
  8. opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
  9. opts.secretOrKey = config.secret;
  10. passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
  11. User.getUserById(jwt_payload._id, (err, user) => {
  12. if(err) {
  13. return done(err, false);
  14. } if (user) {
  15. return done(null, user);
  16. } else {
  17. return done(null, false);
  18. }
  19. });
  20. }));
  21. }
  22.  
  23. router.post('/authenticate', (req, res, next) => {
  24. const username = req.body.username;
  25. const password = req.body.password;
  26.  
  27. User.getUserById(username, (err, user) => {
  28. if(err) throw err;
  29. if(!user) {
  30. return res.json({success: false, msg: 'User not found'});
  31. }
  32.  
  33. User.comparePassword(password, user.password, (err, isMatch) => {
  34. if(err) throw err;
  35. if(isMatch) {
  36. const token = jwt.sign(user, config.secret, {
  37. expiresIn: 604800 // 1 week
  38. });
  39.  
  40. res.json({
  41. success: true,
  42. token: 'JWT ' + token,
  43. user: {
  44. id: user._id,
  45. name: user.name,
  46. username: user.username,
  47. email: user.email
  48. }
  49. });
  50. } else {
  51. return res.json({success: false, msg: 'Incorrect password'});
  52. }
  53. });
  54.  
  55. });
  56. });
  57.  
  58. module.exports.comparePassword = function(candidatePassword, hash, callback){
  59. bcrypt.compare(candidatePassword, hash, (err, isMatch) => {
  60. if(err) throw err;
  61. callback(null, isMatch);
  62. });
  63. }
Add Comment
Please, Sign In to add comment