jwt同样的内容生成的token不一样
直接贴代码吧:
const jwt = require('jsonwebtoken')
var token
token = jwt.sign({ foo: 'bar' }, 'shhhhh')
console.log(token)
token = jwt.sign({ foo: 'bar' }, 'shhhhh')
console.log(token)
token = jwt.sign({ foo: 'bar' }, 'shhhhh')
console.log(token)
第一次执行这个代码,连续生成并且打印三次token,三次打印出的token都是一样的。
第二次执行这个代码,生成的token与第一次执行时不一样。
也就是不同的进程,生成的token是不一样的。为什么?
我理解的的HAC算法应该是固定的输入就有固定的输出
2 回复
与进程无关,与签发时间有关
'use strict';
const jwt = require('jsonwebtoken');
const payload = {
foo: 'bar',
iat: 1531471777
};
const secret = 'shhhhh';
const tokens = [
jwt.sign(payload, secret),
jwt.sign(payload, secret),
jwt.sign(payload, secret),
];
console.log(tokens);
试一下
https://github.com/auth0/node-jsonwebtoken/blob/master/sign.js#L141
@DerekYeung Thanks very very very much! 这个问题导致的一系列问题困扰我很久很久啦。 总算搞清楚了