SecurityAlgorithms
类中有两个相似的选项。
用于签署JWT令牌的是哪一个? 有什么区别吗?
SecurityAlgorithms
类中有两个相似的选项。
用于签署JWT令牌的是哪一个? 有什么区别吗?
alg
属性中。当您使用 HmacSha512
时,标头如下:{
"alg": "HS512",
"typ": "JWT"
}
但是当你使用HmacSha512Signature
时,头部信息看起来像这样:
{
"alg": "http://www.w3.org/2001/04/xmldsig-more#hmac-sha512",
"typ": "JWT"
}
您可以使用 https://jwt.io/ 来确认。
当我有同样的问题时,我发现许多库(主要在 .NET 之外)不支持将 http://www.w3.org/2001/04/xmldsig-more#hmac-sha512
作为 alg
属性值,因为它没有包含在 JSON Web Algorithms RFC,第 3.1 节 中。
相关讨论 1: https://github.com/auth0/node-jsonwebtoken/issues/662
相关讨论 2: https://giters.com/jwtk/jjwt/issues/676
所以我个人决定使用 HmacSha512
。如果整个系统将在 .NET 生态系统内开发,则两者均可使用且效果相同,但如果 token 可能被非 .NET 应用程序使用,则最好使用 HmacSha512
。
SecurityTokenDescriptor
的SigningCredentials
中 - Mr Patience