Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- events.js:183
- throw er; // Unhandled 'error' event
- ^
- CastError: Cast to ObjectId failed for value "john" at path "_id" for model "User"
- module.exports = function(passport) {
- let opts = {};
- opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
- opts.secretOrKey = config.secret;
- passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
- User.getUserById(jwt_payload._id, (err, user) => {
- if(err) {
- return done(err, false);
- } if (user) {
- return done(null, user);
- } else {
- return done(null, false);
- }
- });
- }));
- }
- router.post('/authenticate', (req, res, next) => {
- const username = req.body.username;
- const password = req.body.password;
- User.getUserById(username, (err, user) => {
- if(err) throw err;
- if(!user) {
- return res.json({success: false, msg: 'User not found'});
- }
- User.comparePassword(password, user.password, (err, isMatch) => {
- if(err) throw err;
- if(isMatch) {
- const token = jwt.sign(user, config.secret, {
- expiresIn: 604800 // 1 week
- });
- res.json({
- success: true,
- token: 'JWT ' + token,
- user: {
- id: user._id,
- name: user.name,
- username: user.username,
- email: user.email
- }
- });
- } else {
- return res.json({success: false, msg: 'Incorrect password'});
- }
- });
- });
- });
- module.exports.comparePassword = function(candidatePassword, hash, callback){
- bcrypt.compare(candidatePassword, hash, (err, isMatch) => {
- if(err) throw err;
- callback(null, isMatch);
- });
- }
Add Comment
Please, Sign In to add comment