2016-11-13 4 views
0

Подписание jwt не выполняется и возвращает нуль для токена. Вот моя реализация:Подписание для токеновой метки jwt возвращает null - nodejs

var jwt = require('jsonwebtoken'); 

var jwt_session_secret = "rnwR_apwvkWjdHovcmmQuoDwLR8av9oFjbJm2KhS7oEX9aSiBu9e96jxCDM9vj5_x8OlCCEiXwIGkagL-KDgnDsulc2e0QU5qYN75lzomrc4P9gqgGXB7HVfpaBcKgW3oLsXRBWAoFT5ICsOSwT-70hdQtJfE7a3NK6j3jmxcSE"; 

var payload = { ud: 23 }; 
var exp = Math.floor((new Date(+new Date + 12096e5).getTime())/1000); 
var opts = { issuer: 'gateway', expiresIn: exp }; 

console.log(payload); 

jwt.sign(payload, jwt_session_secret, opts, function(token) { 

    console.log("token = " + token); 

     jwt.verify(token, jwt_session_secret, function(err, decoded) { 
      if(err) { 
       console.log("Error failed: " + err); 
       return; 
      } 
      console.log("decoded"); 
      console.log(decoded); 
      }); 
     }); 

Код выглядит хорошо для меня, но не уверен, что им что-то не хватает. Это выход:

{ ud: 23 } token = null Error failed: JsonWebTokenError: jwt must be provided

ответ

1

Вы должны принять два параметра в функцию обратного вызова, ERR и лексема следующим образом:

jwt.sign(payload, jwt_session_secret, opts, function(err, token) {