我为节点express rest api层设置了护照。我想在初始登录时使用本地护照,在初始登录后使用passport-jwt传递令牌。我在未添加jwt令牌的情况下命中端点时遇到了奇怪的错误。我看到了调用jwtStrategy函数的位置,但是,我没有收到任何错误消息或异常,回调从未触发。 JwtStrategy会检查空的令牌标头还是由开发人员决定?
这是jwt策略功能:
export let jwtStrategy = (req, res, next) => {
try {
return new JwtStrategy({
jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('jwt'),
secretOrKey: process.env.AUTH_KEY
},
async (jwt_payload, done) => {
try {
let member = await getMemberProfile(jwt_payload.memberId);
if (! member) {
throw new NotFoundError('Could not local this member.');
}
return done(null, {
memberId: member._id
});
} catch (err) {
return done(err, false);
}
});
} catch (e) {
throw e;
}
}
这是我正在测试的路线:
app.use('/', passport.authenticate('jwt', {session: false}, jwtStrategy), indexRouter);