gpt4 book ai didi

javascript - Passportjs jwt,客户端响应未经过身份验证

转载 作者:行者123 更新时间:2023-12-03 06:21:54 26 4
gpt4 key购买 nike

尝试使用passport-JWT实现登录。注册和登录都工作正常, token 在登录时生成并发送到客户端,客户端存储并返回它。

登录身份验证请求到达应用程序后没有任何反应..帮助? :)

智威汤逊战略

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 - -

最佳答案

您告诉 Passport-JWT 在授权 header 中查找 JWT,但您似乎正在尝试将 JWT 作为查询字符串传递。

尝试发送 header :身份验证:“JWT”+ token

我实际上为此前端和后端编写了一个教程,您可能会发现它很有帮助。

http://blog.slatepeak.com/refactoring-a-basic-authenticated-api-with-node-express-and-mongo/

http://blog.slatepeak.com/build-a-react-redux-app-with-json-web-token-jwt-authentication/

关于javascript - Passportjs jwt,客户端响应未经过身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38828870/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com