跳到主要内容
CNode

jwt同样的内容生成的token不一样

问答
Ttinycold发布于 8 年前最后回复 8 年前
256910

直接贴代码吧:

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)

T
tinycold#28 年前
引用 DerekYeung与进程无关,与签发时间有关 试一下 https://github.com/auth0/node jsonwebtoken/blob/master/sign.js L141

@DerekYeung Thanks very very very much! 这个问题导致的一系列问题困扰我很久很久啦。 总算搞清楚了

D
DerekYeung#18 年前

与进程无关,与签发时间有关

'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

参与回复

登录后即可参与回复。登录