【问题标题】:JWT - Refreshing tokens, and security improvmentsJWT - 刷新令牌和安全改进
【发布时间】:2020-04-15 04:10:21
【问题描述】:

我正在使用 NodeJS 和 ReactJS 开发一个新的 Web 应用程序,并且我正在使用 JWT 进行身份验证。客户端使用 axios.post() 向 /login 发送请求,服务器检查用户输入的数据并返回一个过期时间为 5 分钟的访问令牌和一个刷新令牌。我使用 Redux 将令牌保存在应用级别状态。在接下来的请求中,客户端将令牌发送回服务器。

我的问题是:

1) 有没有办法打开多个选项卡并恢复打开的第一个选项卡的状态,当用户退出选项卡时,他会退出所有选项卡? (Facebook 使用这种方法)

2) 假设我在朋友家连接到网站,但离开时忘记断开连接,有没有办法在我回到家时断开所有设备的连接? (Facebook 也使用它)

3) 是否可以在 X 秒/分钟后在关闭选项卡时自动删除处于应用级别状态的令牌,否则可以持续刷新访问令牌?

提前谢谢你

【问题讨论】:

    标签: security facebook-authentication refresh-token jwt-auth


    【解决方案1】:

    9 天后没有回复您的帖子。太糟糕了,让我帮你。 为了得到你想要的最接近的表示,我会使用 SameSite Cookie。

    它们始终位于所有选项卡上,您也可以在一段时间后使它们失效。 Cookie 将被删除,您将被注销。

    为了使用设备,您可以在刷新令牌上使用黑名单,尽管这违反了 JWT 的原则,但仍有可能。

    1. SameSite Cookie 分布在所有选项卡中
    2. Cookie 可以在所有请求的头部发送(使用严格模式)
    3. 删除 Cookie 会导致注销
    4. 将 Refreshtoken JWT 列入黑名单也会导致用户注销。

    建议您阅读有关 SameSite cookie(严格)的信息。你会感到惊讶,因为知道它的人并不多。

    如果我可以提供任何帮助,请随时通过 DM 与我联系。

    【讨论】:

      猜你喜欢
      • 2017-12-25
      • 2018-10-16
      • 2022-01-19
      • 1970-01-01
      • 2018-09-29
      • 2021-10-28
      • 2016-03-05
      • 2016-06-25
      • 2021-08-23
      相关资源
      最近更新 更多