2016-08-09 6 views
0

jwt.verify가 반환, 나는 간단한 스크립트 페이로드를 실행 디코딩 할 것이다Jsonwebtoken 만 {IAT : XXX} 반환 항상 확인 문서, <a href="https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback" rel="nofollow">https://github.com/auth0/node-jsonwebtoken#jwtverifytoken-secretorpublickey-options-callback</a>에 따르면

var token = jwt.sign({email: req.body.email,}, 's3cr3t'); 
var decoded = jwt.verify(token, 's3cr3t'); 
console.log(decoded) 

을하지만 전용 출력과 같은 : { iat: 1470725598 }

I 출력은 다음과 같아야합니다. {email: [email protected],}

누락 된 것이 있습니까?

답변

2

내 컴퓨터에 문제를 복제하려하지만 난 할 수 있었다. 그러나 req.body.email 속성이 undefined 인 시나리오를 모방하자 마자.

예 : 다음은 출력

var jwt = require('jsonwebtoken'); 
var token = jwt.sign({email: undefined}, 's3cr3t'); 
var decoded = jwt.verify(token, 's3cr3t'); 

;

{IAT : 1470727340} 문제와 일치

. 따라서 귀하의 문제가 인 req.body.email 일 것으로 판단됩니다.

req.body.email이 "[email protected]"으로 올바르게 설정되었다고 가정하면 출력은 다음과 같습니다.

{전자 우편 : '[email protected]', IAT : 1470727500를} 또한

, 단지 보조 노트를. 문서에 쓰여있는대로 try-catch 절 안에 .verify 메서드를 래핑하고자 할 수 있습니다. 토큰이 유효하지 않은 경우 verify는 오류를 throw합니다.

+0

예 .. 오타, 큰 감사합니다 .. – egig

0

verify-function은 세 번째 매개 변수 function (err, decoded)을 사용합니다. 코드는 다음과 같아야합니다

jwt.verify (token, "s3cr3t", function (err, decoded) { 
    if (err) throw err; 

    // decoded object with your data 
} 
+1

유효한 OP의 예는 무엇입니까? 콜백 함수가 지정되어 있지 않은 경우,'jwt.verify'는 동 기적으로 동작합니다. 나는 –

+0

을 본다. 그런 다음 초기 코드에 문제가 보이지 않습니다. 그는이 코드를 시도해보고 문제가 해결되는지보고 할 것입니다. – NikxDa

+0

감사합니다 @NikxDa,하지만 아니요 : ( – egig