首页 > 解决方案 > “未知的身份验证策略”“jwt”

问题描述

我现在退休了,现在有时间学习如何开发 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);
    });
});

我在控制台中获得了用户令牌。美好的!此获取请求尚未受到保护。为了保护它,我稍微修改了第一行:

app.get('/movies', passport.authenticate('jwt', { session: false }), (req,res) => {
...

现在触发了一个错误。

未知的身份验证策略“jwt”

在阅读了各种网站上的几百万个问题和答案后,我没有任何想法可以解决我的问题。建议将不胜感激。

谢谢

标签: node.jsjwt

解决方案


你检查过你的 server.js 或 index.js 吗?你应该添加一些初始化程序。我收到了同样的错误,我错过了那些

const passport = require('passport');
// Passport middleware
app.use(passport.initialize());

// Passport Config
require('./config/passport')(passport);

推荐阅读