【问题标题】:Should Refresh Tokens Be Deleted on Logout?是否应该在注销时删除刷新令牌?
【发布时间】:2018-12-28 00:02:53
【问题描述】:

我使用访问令牌和刷新令牌为我的 asp.net core 2 api 验证我的用户。

当用户物理单击注销按钮时,我会清除包含访问令牌和刷新令牌的本地存储。

但我想知道是否应该进行额外的调用并删除刷新令牌。

【问题讨论】:

  • 是的,你应该这样做。因为注销后用户将登录一个新的访问令牌和一个新的刷新令牌。在这种情况下,您不应保留刷新令牌。因为无论您是否删除,下次登录时都会再次发出刷新令牌(如果您的授权允许)。
  • 是的,基本上旧的将是一个孤儿刷新令牌,我想这可能会打开一个轻微的安全漏洞,因为理论上有人可以获得该令牌。虽然仍然可能有时间(比如 localstorage 很清楚)所以我可能仍然有孤儿令牌。我应该只为那些清理任务吗?

标签: authentication asp.net-core refresh-token


【解决方案1】:

是的,我想你应该这样做。关于清除旧的刷新令牌或尽可能多地保持新鲜,有很多不同的意见。实际上,主要目的是保留刷新令牌,以便您以后可以重新使用它们。 但是,如果人们通过点击按钮注销,那么您可以清理那些刷新令牌。

但是,如果您想在不重新登录的情况下将它们保留在您的站点上更长时间,您可以使用刷新令牌重新颁发访问令牌。所以用户的授权令牌会更有效。但是如果用户想自己注销,那么你应该清理它并在他们下次登录时再次存储。

【讨论】:

  • 好吧,我认为主要原因是你可以拥有短访问令牌,并且基本上可以在需要时撤销人们,但我看到有人说刷新令牌不应该过期,有些人说他们应该.我倾向于他们最终应该死。
  • 根据 RFC,最好轮换或使刷新令牌无效。否则,如果无限期保留刷新令牌,人们可能会滥用它们。
  • 好吧,刷新令牌一旦使用我就会失效,如果它使用了,那么它会被删除并生成一个新令牌。这只是如何处理可能是孤儿的人以及如何决定何时成为孤儿。
猜你喜欢
  • 2014-03-29
  • 2015-07-08
  • 2021-07-05
  • 2023-03-31
  • 2016-11-15
  • 2020-10-19
  • 1970-01-01
  • 1970-01-01
  • 2017-06-27
相关资源
最近更新 更多