我现在已经退休了,有些时间可以学习如何开发一个MEVN应用程序;-) 我现在要保护应用程序中的一些页面,需要使用 jwt
令牌。 我可以记录用户并稍后读取它的令牌:
app.get('/movies', (req,res) => {
jwtOptions.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme('jwt');
console.log(Version + 'JWT token: ' + jwtOptions.jwtFromRequest(req));
Movie.find({}, 'name description release_year genre', (error, movies) => {
if(error) { console.log(error);}
console.log(Version + "Fetched " + movies.length + " movies");
res.send(movies);
});
});
我在控制台中获取了用户令牌。很好!这个GET请求尚未受到保护。 为了保护它,我稍微修改了第一行:
app.get('/movies', passport.authenticate('jwt', { session: false }), (req,res) => {
...
现在触发了一个错误。
未知的身份验证策略“jwt”
在各种网站上阅读了数百万个问题和答案后,我对解决我的问题毫无头绪。 非常感谢您提供建议。
谢谢
jwt
?你需要像这样的代码passport.use(new JwtStrategy(options))
https://www.npmjs.com/package/passport-jwt - Yury Tarabankopassport.initialize()
中间件。然后再声明/movies
路由之前检查是否已调用passport.use
。顺便提一下文档 :) http://www.passportjs.org/docs/configure/ - Yury Tarabanko