我正在使用NodeJS和ReactJS开发一个新的Web应用程序,并且正在使用JWT进行身份验证。客户端使用axios.post()向/ login发送请求,服务器检查用户输入的数据,并返回到期时间为5分钟的访问令牌和刷新令牌。我使用Redux在应用程序级别状态下保存令牌。在下一个请求时,客户端将令牌发送回服务器。
我的问题是:
1)是否可以打开多个选项卡并恢复第一个打开的选项卡的状态,并且当用户注销某个选项卡时,他从所有选项卡中都注销了吗? (Facebook使用此方法)
2)想象一下,我在一个朋友的地方连接到该网站,而当我离开时却忘记了断开连接,有什么方法可以在我回到家时与所有设备断开连接? (Facebook也使用它)
3)是否可以在关闭选项卡后X秒钟/分钟后仅在应用强度状态下自动删除令牌(仅 ),否则可以连续刷新访问令牌?
提前谢谢
答案 0 :(得分:0)
9天后无人回复您的帖子。太糟糕了,让我帮您。 为了获得您想要的最接近的表示,我将使用SameSite Cookie。
它们始终位于所有选项卡上,并且您也可以在一段时间后使它们过期。 Cookie将被删除,您将被注销。
为了与设备一起使用,您可以在刷新令牌上使用黑名单,尽管这违反了JWT的原则,但这仍然是可能的。
建议您阅读SameSite cookie(严格)。您会感到惊讶,因为没有很多人知道这件事。
如果我可以提供任何帮助,请随时通过DM与我联系。