缺少Express JS-jwt符号exp

Express JS - jwt sign exp missing

本文关键字:exp 符号 JS-jwt Express 缺少      更新时间:2023-09-26

我使用的是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字段。

我该如何修复它?

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

将此文件替换为:

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

并将expiresIn更改为expiresInMinutes