Security 如何使用JWTs处理权限更改
通过在令牌本身中包含权限,承诺更快/更简单。然而,我的问题是:假设用户已登录,并且正在使用包含权限信息的JWT,允许他们访问a和B。Security 如何使用JWTs处理权限更改,security,authentication,jwt,Security,Authentication,Jwt,通过在令牌本身中包含权限,承诺更快/更简单。然而,我的问题是:假设用户已登录,并且正在使用包含权限信息的JWT,允许他们访问a和B。 然后,管理员或其他用户出现并授予该用户在用户仍登录时查看C的权限。但是因为用户仍然在使用旧的JWT,他仍然无法访问C 这里有什么选择?将令牌列入黑名单并强制用户再次登录?还是完全忘记基于令牌的权限?JWT令牌存储在前端的localStorage或Cookie中,因此当您的应用程序面临权限更改时,这将成为一个问题 使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储
然后,管理员或其他用户出现并授予该用户在用户仍登录时查看C的权限。但是因为用户仍然在使用旧的JWT,他仍然无法访问C
这里有什么选择?将令牌列入黑名单并强制用户再次登录?还是完全忘记基于令牌的权限?JWT令牌存储在前端的localStorage或Cookie中,因此当您的应用程序面临权限更改时,这将成为一个问题
使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储在数据库中,因此,通过更改此密钥,将强制该特定用户重新登录,并获得具有更新权限的新令牌。JWT令牌存储在本地存储或前端的cookie中,因此,当您的应用程序面临更改时,这将是一个问题权限
使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储在数据库中,因此通过更改此密钥将强制特定用户重新登录,并获得具有更新权限的新令牌。就个人而言,我将仅依靠JWT进行身份验证(调用方是谁)
对于授权(调用者可以做什么),请从持久性存储中查找调用者角色/权限,以获取最新信息。就我个人而言,我只依赖JWT进行身份验证(调用者是谁) 对于授权(调用者可以做什么),请从持久性存储中查找调用者角色/权限,以获取最新信息