Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Security 如何使用JWTs处理权限更改_Security_Authentication_Jwt - Fatal编程技术网

Security 如何使用JWTs处理权限更改

Security 如何使用JWTs处理权限更改,security,authentication,jwt,Security,Authentication,Jwt,通过在令牌本身中包含权限,承诺更快/更简单。然而,我的问题是:假设用户已登录,并且正在使用包含权限信息的JWT,允许他们访问a和B。 然后,管理员或其他用户出现并授予该用户在用户仍登录时查看C的权限。但是因为用户仍然在使用旧的JWT,他仍然无法访问C 这里有什么选择?将令牌列入黑名单并强制用户再次登录?还是完全忘记基于令牌的权限?JWT令牌存储在前端的localStorage或Cookie中,因此当您的应用程序面临权限更改时,这将成为一个问题 使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储

通过在令牌本身中包含权限,承诺更快/更简单。然而,我的问题是:假设用户已登录,并且正在使用包含权限信息的JWT,允许他们访问a和B。
然后,管理员或其他用户出现并授予该用户在用户仍登录时查看C的权限。但是因为用户仍然在使用旧的JWT,他仍然无法访问C


这里有什么选择?将令牌列入黑名单并强制用户再次登录?还是完全忘记基于令牌的权限?

JWT令牌存储在前端的localStorage或Cookie中,因此当您的应用程序面临权限更改时,这将成为一个问题


使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储在数据库中,因此,通过更改此密钥,将强制该特定用户重新登录,并获得具有更新权限的新令牌。

JWT令牌存储在本地存储或前端的cookie中,因此,当您的应用程序面临更改时,这将是一个问题权限


使用刷新令牌机制,每个用户具有唯一的密钥,该密钥存储在数据库中,因此通过更改此密钥将强制特定用户重新登录,并获得具有更新权限的新令牌。

就个人而言,我将仅依靠JWT进行身份验证(调用方是谁)


对于授权(调用者可以做什么),请从持久性存储中查找调用者角色/权限,以获取最新信息。

就我个人而言,我只依赖JWT进行身份验证(调用者是谁)

对于授权(调用者可以做什么),请从持久性存储中查找调用者角色/权限,以获取最新信息