我正在使用Express JS + TypeScript
代码:
var token = jwt.sign({ foo: "foo" }, config.secret, {
expiresIn: 60
});
res.json({
type: true,
token: token
});
生成的令牌eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmb28iOiJmb28iLCJpYXQiOjE0NjIzNzg5NTB9.jTQSGYaCwyNhhdAi-5OhoAsTRIUhcX7htZbsOmQYGg4
解析为:
HEADER:ALGORITHM & TOKEN TYPE
{
"typ": "JWT",
"alg": "HS256"
}
PAYLOAD:DATA
{
"foo": "foo",
"iat": 1462378950
}
VERIFY SIGNATURE
HMACSHA256(
base64UrlEncode(header) + "." +
base64UrlEncode(payload),
secret
)
因为您可以看到PAYLOAD:DATA中缺少exp字段。
我该如何解决?
答案 0 :(得分:0)
typings install jsonwebtoken
cmd设置的文件使用了错误的(旧?)api
将此文件替换为:
https://raw.githubusercontent.com/retyped/jsonwebtoken-tsd-ambient/master/jsonwebtoken.d.ts
并将expiresIn
更改为expiresInMinutes