Я использую passport-jwt
для проверки подлинности некоторых маршрутов и я создаю свои jwt
с с node-jwt-simple
/jwt-simple
но сталкивается с некоторыми трудностями потому что это выглядит как мой passport-jwt
Аутентифицировать промежуточное программные вообще не называемый.Passport-JWT проверка подлинность не очень хорошо работает с узлом-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);
});
}));
который я затем интегрировать его здесь.
маршруты файл
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')
(на основе Коа). Я думаю, что это что-то вроде req.header('Authorization')
с экспресс во всех направлениях.
Также Точная экспресс на основе проблемы можно найти по вопросам GitHub из node-jwt-simple
here упаковывают любая проблема с моими образцами кода.
спасибо.