Express JS 和 JWT - 令牌类型未在解码中显示 header

Express JS and JWT - Token Type not shown in decoded header

我刚刚向我的 Express JS 应用程序添加了基于令牌的身份验证 - 看起来解码部分中没有显示令牌类型。

我正在使用 https://jwt.io/

进行测试

我用来测试的令牌 -

 eyJhbGciOiJIUzI1NiJ9.eyJfaWQiOiJSYW4zIiwibmFtZSI6IlJhbjMgVGVzdCJ9.YPJXc4tp8NaWcboE9obwGvm-AGa6fkN1IA6y0pT7u-w"

header 部分刚刚出现

{
 "alg": "HS256"
}

我希望它会像这样显示 -

{
 "alg": "HS256",
 "typ": "JWT"
}

请解释为什么 header 中缺少 Token 类型?

我这样生成令牌 -

 var token = jwt.sign(JSON.stringify(user_dict), app.get('superSecret'));

谢谢

"type" 是 header 根据规范的可选设置, 通常 使用,因此大多数示例不分享如何做它。假设您正在使用此库 (https://github.com/auth0/node-jsonwebtoken),您将能够通过 options.header 值将选项传递给 "header",这应该允许您指定字段 "typ":"JWT" 通过

var options = { "header": { "typ": "JWT" } };
var token = jwt.sign(JSON.stringify(user_dict), app.get('superSecret'), options);