我正在使用JWT
策略学习 passport.js ,我想创建一个注销用户的系统。
我要这样处理:
InvalidTokens
的表中InvalidTokens
中问题是我不知道如何在下面的代码中访问字段jwtFromRequest
:
// passport.js
// File where I store my authentication strategies
// ...
/**
* Use JWT strategy for all the other requests that need authentication on the
* server
*/
var opts = {
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey: 'secret',
}
passport.use('jwt', new JWTStrategy(
opts,
async (jwtPayload, done) => {
try {
const token = await TokenInvalide.findOne({
where: {
Token: '<token_value_I_can\'t_reach>',
}
})
if (token !== null)
return done(null, false);
return done(null, jwtPayload.idUtilisateur);
} catch (e) {
console.log(e);
return done(null, false);
}
}
));
答案 0 :(得分:1)
According to the doc,您可以通过将request
设置为true来将passReqToCallback
对象传递给回叫
还没有测试过,但是应该是正确的方向
var opts = {
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken(),
secretOrKey: 'secret',
passReqToCallback: true // <----- Add this
}
passport.use('jwt', new JWTStrategy(
opts,
async (req, jwtPayload, done) => {
const rawJWTToken = req['Authorization'].split(' ')[1]
...
}
));