【问题标题】:Remove or Expire OAuth Token Asp.net MVC删除或过期 OAuth 令牌 Asp.net MVC
【发布时间】:2018-04-04 03:46:50
【问题描述】:

我正在使用以下代码生成OAuth 令牌。它工作正常。现在,每当我从系统注销时,我都想删除/过期令牌。我怎样才能做到这一点?

ClaimsIdentity oAuthIdentity = new ClaimsIdentity(OAuthDefaults.AuthenticationType);
ClaimsIdentity cookiesIdentity = new ClaimsIdentity(CookieAuthenticationDefaults.AuthenticationType);

AuthenticationTicket ticket = new AuthenticationTicket(oAuthIdentity, null);
context.Validated(ticket);
context.Request.Context.Authentication.SignIn(cookiesIdentity);

我尝试了Authentication SignOut 方法,但它什么也没做。我需要同时使用OAuthDefaultsCookieAuthenticationDefaults 来生成令牌吗?

【问题讨论】:

  • 这是asp.net核心吗?
  • @BinaryPatrick 没有。它是MVC

标签: asp.net-mvc authentication oauth token


【解决方案1】:

OAuth 令牌通常是自包含的 (JWT),这意味着它包含用户信息以及令牌的到期时间,因此您不能删除或使现有令牌到期。

【讨论】:

  • 那么,如果有人有令牌,那么即使在注销后,它也可能被滥用。
  • 是的,这就是它的本质。甚至cookie都是这样,如果您将cookie存储在某个地方,然后注销然后自己将cookie添加到浏览器中,您仍然是经过身份验证的
  • 这里有没有办法防止这个问题?
  • 您可以使用参考访问令牌。查看此链接以获取更多信息docs.identityserver.io/en/release/topics/reference_tokens.html
  • 您还可以存储已过期的令牌列表。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-24
  • 1970-01-01
  • 2016-11-29
  • 2012-04-05
  • 2015-04-23
  • 1970-01-01
  • 2016-10-11
相关资源
最近更新 更多