我使用JwtSecurityTokenHandler
在aspnet核心web api app中发出令牌:
JwtSecurityToken token = BuildJwtSecurityToken(...);
public string toks = new JwtSecurityTokenHandler().WriteToken(token);
每次请求和创建令牌时,都会实例化一个新的JwtSecurityTokenHandler,我可以使用它的全局实例并将其用于每个令牌生成吗?
private JwtSecurityTokenHandler handler = new JwtSecurityTokenHandler();
private GenToken(JwtSecurityToken token) => handler.WriteToken(token);
这样使用有什么问题吗?
答案 0 :(得分:0)
文档说JwtSecurityTokenHandler
的实例成员不保证是线程安全的。
答案 1 :(得分:0)
我看到的大多数示例,例如this one on blog.wille-zone.de,都是为每个请求单独创建的。
我不会对此太聪明;即使当前是线程安全的,这里没有人可以让Microsoft承诺保持这种状态。
如果您确实希望他们作出承诺,则可以从https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet处提出问题开始。他们可以将其写入规范/代码/文档中。