Security 每用户机密JWT

Security 每用户机密JWT,security,jwt,secret-key,Security,Jwt,Secret Key,我正在尝试实现一个Rest端点,该端点允许用户注销用户登录的所有设备 我正在调查每个用户动态生成的秘密。我目前正在尝试将一些全局密码+用户电子邮件+随机密码作为密码 允许用户登录和注销多个设备。如果用户想要注销所有设备。我需要做的只是为用户生成一个新的密钥,所有剩余的令牌现在都将无效。如果用户更改了密码,则可以选择仅注销当前设备或注销所有其他设备 然而,这种方法的一个大缺陷是我每次都需要传递用户的电子邮件才能解码令牌 最好的解决方法是什么?当涉及到注销所有设备时,为所有用户提供一个单独的秘密会有

我正在尝试实现一个Rest端点,该端点允许用户注销用户登录的所有设备

我正在调查每个用户动态生成的秘密。我目前正在尝试将一些全局密码+
用户电子邮件
+
随机密码
作为密码

允许用户登录和注销多个设备。如果用户想要注销所有设备。我需要做的只是为用户生成一个新的密钥,所有剩余的令牌现在都将无效。如果用户更改了密码,则可以选择仅注销当前设备或注销所有其他设备

然而,这种方法的一个大缺陷是我每次都需要传递用户的电子邮件才能解码令牌

最好的解决方法是什么?当涉及到注销所有设备时,为所有用户提供一个单独的秘密会有更复杂的逻辑,而这并不像生成一个新的秘密那么容易,因为这会让所有人都注销

我正在考虑将编码的电子邮件作为某种标头传递,客户端必须为所有受保护的端点传递该标头。这是一个好方法吗

任何指导都将不胜感激

有趣的想法

您可以将您的想法扩展到JWT中的签名有效负载。本质上是JWT中的JWT。外部JWT使用公共机密签名。内部JWT使用每个用户的密码进行签名。您验证外部JWT(获取用户引用),然后尝试验证内部JWT;如果你不能(因为用户的秘密已经被转出),那么它就失败了

内场不一定是另一个JWT;它实际上只需要是经过签名的东西(例如HMAC),您可以使用当前的每用户机密进行验证