为什么myToken变量总是未定义?

时间:2017-02-16 00:52:01

标签: javascript json node.js jwt

var fs = require('fs');
var jwt = require('jsonwebtoken');

var secret = fs.readFileSync('secret.key', 'utf8');

var myToken = jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440}, function(err, token) {
      console.log(token);
});

这是我的代码。问题是myToken始终未定义。那么,这里的问题在哪里?

1 个答案:

答案 0 :(得分:3)

您正在使用asynchronously方式。因此令牌在回调函数中得到,jwt.sign函数不会返回。

jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440}, function(err, token) {
      console.log(token);
});

如果您不以异步方式使用,则应该是:

var myToken = jwt.sign({foo : 'bar'}, secret, {expiresInMinutes : 1440});

选择任何一种风格,但不是两种风格。