【问题标题】: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?

【问题讨论】:

标签: c# authentication asp.net-core jwt


【解决方案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)但不值得努力,您可以自定义它。
猜你喜欢
  • 1970-01-01
  • 2016-11-06
  • 2019-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-01
  • 2020-11-01
相关资源
最近更新 更多