пытается внедрить логин с паспортом JWT. как регистрация, так и логин работают нормально, токен создается при входе в систему и отправляется клиенту, который хранит и возвращает его обратно.passportjs jwt, ответ клиента не получает аутентификацию
После того, как запрос на аутентификацию пользователя достигнет приложения, и ничего не произойдет. Помогите? :)
JWT Стратегия
var JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
var opts = {}
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
opts.secretOrKey = 'secret';
opts.issuer = "http://localhost:3000";
opts.audience = "http://localhost:3000";
passport.use('jwt', new JwtStrategy(opts, function(jwt_payload, done) {
console.log(1)
return User
.findOne({where : {username : jwt_payload.email } })
.then(function (user) {
if(user === null){
return TempUser
.findOne({where : {username : jwt_payload.email } })
.then(function(user){
return user === null ?
done(null, false, 'login error, please try again') :
done(null, false, 'email verification needed');
});
} else {
if (bcrypt.compareSync(password, user.dataValues.password)){
done(null, user);
} else {
done(null, false, 'login error, please try again');
}
}
});
}));
Маршрут
router.get('/login/check', function(req, res, next) {
passport.authenticate('jwt', function(err, user, info) {
console.log(err)
res.json({'success' : true});
})
})
req.query возвращается клиентом
GET /login/check?%22eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MSwidXNlcm5hbWUiOiJzaGFpLmthcGx1bkBnbWFpbC5jb20iLCJwYXN
zd29yZCI6IiQyYSQxMCQ0YXpvSlVLMkltUkl3YWo0Uzlqd1RPVXh0RWIwYWphNW92UjRvUnV1QUFRdnJ5Z3g5cWttNiIsImNyZWF0ZWRBdCI6IjIwMTYtMDg
tMDdUMTM6MjI6NDYuMzUyWiIsInVwZGF0ZWRBdCI6IjIwMTYtMDgtMDdUMTM6MjI6NTkuOTExWiIsImlhdCI6MTQ3MDY1NzY0MCwiZXhwIjoxNDcwNzU3NjQ
wfQ.hyHDcmzJne-d6roRXBgC9aQDeZzQPgpkWWOZicQNc8c%22 - - ms - -
да, понял то же самое. Но установка токена в заголовке с клиентской стороны не помогла мне. Что я сделал, перестала использовать паспорт-jwt, и теперь я просто полагаюсь на библиотеку jsonwebtoken для проверки/проверки – Skaplun