工作以及我使用passport-jwt
一些航线验证和我与node-jwt-simple
/jwt-simple
创建我jwt
秒,但面临着一些困难,因为它看起来像我passport-jwt
身份验证中间件根本不被称为。护照,智威汤逊身份验证不使用节点智威汤逊 - 简单
这里是我的
护照JWT战略
const jwtOpts = {
jwtFromRequest: ExtractJwt.fromHeader('Authorization'),
secretOrKey: secret,
};
passport.use(new jwtStrategy(jwtOpts, (payload, done) => {
console.log('payload ', payload.sub);
User.findById(payload.sub, (err, user) => {
if(err) { return done(err); }
if(!user) { console.log('didnt find!'); return done(null, false); }
done(null, user);
});
}));
我敢那么它集成在这里。
routes文件
router.get('/success',
passport.authenticate('jwt', {session: false}),
async (ctx, next) => ctx.body = await "success!");
这里也是我让我的jwt
的方式。
function tokenForUser(user) {
const timeStamp = new Date().getTime;
return jwt.encode({sub: user._id, iat: timeStamp}, secret);
}
//- Later in signup process
userToSave.save(async(err, user) => {
if(err) { return next(err); }
const token = await tokenForUser(user);
next(token);
});
//- If this helps, here is how my secret file looks like.
const secret = "JKAha23ja1ddHdjjf31";
export default secret;
问题来了,当我打的路线我只得到Unauthorized
并在控制台中没有获取注销甚至不是“有效载荷”我指定的第一个关键。
我也应该说,我有ctx.request.get('Authorization')
(基于Koa)的令牌,我认为这是类似req.header('Authorization')
与所有路线中的快递。
而且确切的快递基于问题可以对node-jwt-simple
here GitHub的问题找到柜面有我的代码样本的任何问题。
谢谢。