Express JS - jwt sign exp缺失

时间:2016-05-04 16:29:03

标签: javascript node.js

我正在使用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字段。

我该如何解决?

1 个答案:

答案 0 :(得分:0)

typings install jsonwebtoken cmd设置的文件使用了错误的(旧?)api

将此文件替换为:

https://raw.githubusercontent.com/retyped/jsonwebtoken-tsd-ambient/master/jsonwebtoken.d.ts

并将expiresIn更改为expiresInMinutes