Node.js 黑名单JWT令牌

Node.js 黑名单JWT令牌,node.js,authentication,jwt,access-token,Node.js,Authentication,Jwt,Access Token,根据本文的答案: 关于使用令牌黑名单的#2解决方案,但我有一个问题,服务器如何准确地知道旧令牌并将其添加到黑名单中。例如:当我登录时,我从服务器收到“ABCD”令牌,服务器不会在任何地方保留该令牌。然后我更改密码(或注销),服务器应向我发送一个新的令牌,如“EFGH”,并使旧的“ABCD”无效(通过将“ABCD”添加到黑名单直到其过期),但问题是服务器如何知道要添加到黑名单的“ABCD”旧令牌?要执行与帐户相关的操作,在连接时生成的JWT令牌必须出现在请求的头中(通常在授权头中) 客户端将存储令

根据本文的答案:


关于使用令牌黑名单的#2解决方案,但我有一个问题,服务器如何准确地知道旧令牌并将其添加到黑名单中。例如:当我登录时,我从服务器收到“ABCD”令牌,服务器不会在任何地方保留该令牌。然后我更改密码(或注销),服务器应向我发送一个新的令牌,如“EFGH”,并使旧的“ABCD”无效(通过将“ABCD”添加到黑名单直到其过期),但问题是服务器如何知道要添加到黑名单的“ABCD”旧令牌?

要执行与帐户相关的操作,在连接时生成的JWT令牌必须出现在请求的头中(通常在
授权
头中)

客户端将存储令牌,并在需要时将其发送到服务器进行身份验证


服务器只需检索标头中的令牌即可使其失效,并在必要时将其列入黑名单。

要执行与帐户相关的操作,在连接时生成的JWT令牌必须存在于请求标头中(通常在
授权
标头中)

客户端将存储令牌,并在需要时将其发送到服务器进行身份验证


服务器只需检索标头中的令牌即可使其失效,并在必要时将其列入黑名单。

因此,当您要重置令牌以获取新令牌时,需要在标头中传递旧令牌,所以服务器可以检索它并将其添加到黑名单中。如果同时存在访问和刷新令牌,则这不是真的。用户可以使用访问令牌发送请求,但我们不知道要使哪个刷新令牌无效。因此,这意味着当您要重置令牌以获取新令牌时,需要在标头中传递旧令牌,以便服务器可以检索该令牌并将其添加到黑名单中。如果同时存在访问令牌和刷新令牌,则这不是真的。用户可以使用访问令牌发送请求,但我们不知道要使哪个刷新令牌无效。