我在 ASP.NET Core 中实现了 JWT 身份验证和基于策略的授权。有一个具有管理员权限的用户可以将权限分配给非管理员用户。如果管理员更新非管理员用户的权限/声明,是否有办法强制访问令牌过期,以便携带它的用户将被迫请求具有新更新的权限/声明的新访问令牌?目前,唯一的方法是等待令牌过期,但我想立即强制使其过期。
基于 JWT 令牌的身份验证在服务器端是无状态的。因此,当令牌未过期时,它将起作用。有一些解决该问题的方法:
- 不包括令牌声明中的角色和权限,并在每个请求中从数据库获取这些值。
- 使用刷新令牌机制,设置刷新时间为几分钟,刷新时间到期后返回新的令牌。因此,对于刷新时间已过期的令牌,您知道要获取新的访问权限(不是在每个请求中)。新的权限将在几分钟内设置,但经过身份验证的用户不需要再次登录。
- 创建一组黑名单令牌并将最后发布的令牌附加到其中(不推荐)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)