ASP.NET Core 2.0+ 中 JwtBearerOptions.SaveToken 属性的用途是啥?
Posted
技术标签:
【中文标题】ASP.NET Core 2.0+ 中 JwtBearerOptions.SaveToken 属性的用途是啥?【英文标题】:What is the purpose of JwtBearerOptions.SaveToken property in ASP.NET Core 2.0+?ASP.NET Core 2.0+ 中 JwtBearerOptions.SaveToken 属性的用途是什么? 【发布时间】:2019-11-25 05:15:28 【问题描述】:Microsoft Docs 只是有这样的描述:
定义成功授权后是否应将不记名令牌存储在AuthenticationProperties中。
我想知道保存 JWT 是否允许您以某种方式撤销它,但我读到的每个关于 JWT 的地方都说它们是不可撤销的。你会如何处理存储在 AuthenticationProperties 中的 JWT?
【问题讨论】:
相关回答***.com/questions/49302473/… 【参考方案1】:将 JWT 存储在 AuthenticationProperties
中允许您从应用程序的其他位置检索它。
例如,在动作中使用GetTokenAsync
,如下所示:
public async Task<IActionResult> SomeAction()
// using Microsoft.AspNetCore.Authentication;
var accessToken = await HttpContext.GetTokenAsync("access_token");
// ...
这很有用,例如,如果您想在传出请求中转发 JWT。
【讨论】:
“access_token”这个名字是不是有某种约定?或者可以定制? @Nico 是也不是。access_token
的名称源自 OAuth2(和 OIDC),尽管在 ASP.NET Core 的令牌处理中将其与 GetTokenAsync
一起使用是硬编码的。我觉得情况有点乱。我相信如果您知道自己在做什么(需要子类化,IIRC)但不值得努力,您可以自定义它。以上是关于ASP.NET Core 2.0+ 中 JwtBearerOptions.SaveToken 属性的用途是啥?的主要内容,如果未能解决你的问题,请参考以下文章
ApplicationUser在Asp.Net Core 2.0中的ActionFilter中?
如何在 ASP.NET Core 2.0 中根据路由配置服务身份验证