我试着检查它们是否是如何使用的在线示例
JWT extractors
从请求中获取令牌,但我不明白如何发送
token
用户登录后发出请求。
当我使用
Postman
,有一个名为
Authorization
在那里我可以选择类型
Bearer Token
这使我能够添加
代币
与
授权
以及请求
http://localhost:5000/profile
成功了。
然而,浏览器仍然只显示我
Unauthorized
当我尝试访问个人资料时
http://localhost:5000/profile
成功登录后。
邮递员屏幕截图:
浏览器屏幕截图:
我一直在关注
passpot-jwt documentation
配置:
passport.use(
new JWTStrategy(
{
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey: "mysecret",
},
function (jwtPayload, done) {
return User.findOne({ username: jwtPayload.username })
.then((user) => {
return done(null, user);
})
.catch((err) => {
return done(err);
});
}
)
);
还有我的
login
路线看起来像:
Router.post("/", (req, res, next) => {
passport.authenticate("local", { session: false }, (err, user, info) => {
if (err) return next(err);
if (!user) {
return res.redirect("/login?info=" + info);
}
req.logIn(user, { session: false }, (err) => {
if (err) return next(err);
const token = jwt.sign({ username: user.username }, "mysecret");
res.json({ user, token: `Bearer ${token}` });
});
})(req, res, next);
});