如何撤销指定用户的所有jwt令牌?

问题描述 投票:0回答:1

我知道访问令牌是自包含的,因此无法撤消。据我了解,这就是为什么访问令牌的到期时间通常很短的原因。这样一来,用户就可以撤消刷新令牌,并仅在访问令牌的有效期内允许用户登录。

但是,如果我正确地理解了它,则用户无需使用刷新令牌就可以无限期地更新其令牌。

一个人可以通过添加提示符= none来发起静默认证请求。只要您的访问令牌仍然有效,就可以这样做。这样做将返回一个新的访问令牌,该令牌与直接执行的没有提示= none参数的登录没有区别。

如果我正确理解这一点,那么曾经获得有效令牌的用户可以不断更新该令牌,而无需我以任何方式“撤消”他的访问权限?

我是否理解正确,如果可以,那么如何撤销用户的访问权限,直到他再次手动登录?

jwt identityserver4 revoke
1个回答
0
投票

prompt=none静默更新实际上使用了用户的IDP身份验证cookie,而不是其访问令牌。

好消息是,ASP.Net Core允许您将保存在服务器端所说cookie中的数据(例如,存储在数据库或分布式缓存中),因此您可以随时撤消所说cookie。通过删除与该用户帐户有关的cookie数据,您可以有效地使他们的当前会话无效,从而可以防止将来进行任何静默续订。同样,您可以删除所有持久授权(参考令牌和刷新令牌)。

检查Microsoft.AspNetCore.Authentication.Cookies.ITicketStore界面和CookieAuthenticationOptions.SessionStore属性。

© www.soinside.com 2019 - 2024. All rights reserved.