本文介绍了如何在ASP.Net Core中强制使JWT令牌过期?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我已经在ASP.NET Core中实现了JWT身份验证和基于策略的授权.某些具有管理员权限的用户可以将权限分配给非管理员用户.如果管理员更新了非管理员用户的权限/声明,是否有办法强制使访问令牌过期,以便携带该令牌的用户将被迫请求具有新近更新的权限/声明的新访问令牌?目前,唯一的方法是等待令牌过期,但我想立即强制令牌过期.

I have implemented a JWT authentication and a policy-based authorization in ASP.NET Core. There is a certain user with admin privileges who can assign permissions to non-admin users. If the admin updates the permissions/claims of a non-admin user, is there a way to force expire the access token so that user carrying it will be forced to request a new access token with the newly updated permissions/claims? Right now, the only way to that is to wait for the token to expire but I want to force expire it immediately.

推荐答案

基于JWT令牌的身份验证在服务器端是无状态的.因此,当令牌未过期时,它将起作用.有一些解决此问题的方法:

Authentication based on JWT tokens is stateless in serverside. So when a token is not expired it will work. There are some approaches to the problem:

  • 在令牌声明中不包括角色和权限,并在每个请求中从数据库中获取这些值.
  • 使用刷新令牌机制并将刷新时间设置为几分钟,并在刷新时间到期时返回新令牌.因此,对于刷新时间已过期的令牌,您知道要获得新的访问权限(不在每个请求中).新的权限将在几分钟后设置,但已通过身份验证的用户无需再次登录.
  • 创建一组黑名单令牌,并将最后发布的令牌附加到该列表中(不推荐).

这篇关于如何在ASP.Net Core中强制使JWT令牌过期?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 15:47