如何撤销持票人令牌(没有刷新)?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何撤销持票人令牌(没有刷新)?相关的知识,希望对你有一定的参考价值。

上下文:我不想为我的API创建刷新令牌,而是希望为用户提供终身到期令牌以进行身份​​验证。但是,让我们说一个令牌受到损害,我需要能够撤销它。现在OAuth不支持撤销开箱即用,所以我正在寻找一种解决方法。

我的粗略方法:

  1. 每次API调用,检查持票人令牌。如果它属于某个黑名单(存储在db中),则不允许访问该令牌。但为此,我需要能够从调用者获取令牌。知道我怎么能这样做吗?我需要以某种方式修改[System.Web.Http.Authorize]标签吗?
  2. 使用https://msdn.microsoft.com/en-us/library/microsoft.owin.security.oauth.oauthbearerauthenticationprovider.onrequesttoken(v=vs.113).aspx检查有效性?

要点:我需要能够跟踪用于调用控制器上任何操作事件的令牌。

谢谢。

答案

当然,你走在正确的轨道上。发送给Api的每个请求都将携带令牌信息。您所要做的就是扩展当前的[Authorize]属性以获取令牌信息并对其进行验证。

以上是关于如何撤销持票人令牌(没有刷新)?的主要内容,如果未能解决你的问题,请参考以下文章

如何以管理员用户身份撤销用户的访问令牌和刷新令牌?在 Oauth2 中使用 JWT

撤销 JWT Oauth2 刷新令牌

Oauth2/Openid 连接。如何撤销未知的访问/刷新令牌

Google API OAuth2 刷新令牌突然被撤销

如何撤销存储在 Identity Server 数据库中的 asp net core 中的刷新令牌

Google 令牌刷新返回“令牌已过期或撤销”。