잘 작동하지 않는 나는 node-jwt-simple
/jwt-simple
내 jwt
의 만드는거야하지만 내 passport-jwt
을 인증 미들웨어 인 것 같습니다 원인 어려움에 직면 전혀 부르지 않았다.여권-JWT 인증합니다 내가 어떤 경로를 인증하는 <code>passport-jwt</code>을 사용하고 노드 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);
});
}));
내
여권 JWT-전략입니다.
노선들은 여기
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의 문제에서 찾을 수 있습니다 정확한 표현은 넣다 내 코드 샘플에 문제가있다.
감사합니다.