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 属性的用途是啥?的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET CORE 2.0 中的 FromUri

ApplicationUser在Asp.Net Core 2.0中的ActionFilter中?

ASP.NET Core 2.0 中的多个身份

如何在 ASP.NET Core 2.0 中根据路由配置服务身份验证

ASP.NET Core 2.0 中RequiredAttribute 的本地化

跟着老桂学ASP.NET Core 2.0