【问题标题】:Manage session in react using cookies使用 cookie 管理会话
【发布时间】:2020-11-03 10:48:46
【问题描述】:

在我的项目中,我正在使用 nodeJS 并做出反应。对于后端的会话,我使用的是 httpOnly cookie。因此,当用户登录时,我们发送带有 JWT 令牌的 httpOnly cookie(httpOnly cookie 包含 JWT 令牌)。现在使用这个 httpOnly cookie,我正在后端检查身份验证。

现在,问题是如何在反应端管理会话(或进行身份验证检查)?因为在这里,我们无法使用 javascript 访问 httpOnly cookie。

例如:

  • /login route --> httpOnly cookie 发送给用户
  • /dashboard ----> 假设用户想在没有登录的情况下打开它的路由,那么我们首先需要检查用户是否有效(如果我们使用本地存储,那就容易了,因为我们只需要检查本地存储中的令牌存储)。现在如何检查cookie中用户的真实性?

如果有人有解决此问题的任何想法,那将是很大的帮助。

【问题讨论】:

    标签: javascript reactjs cookies local-storage


    【解决方案1】:

    如果您只想使用httOnly cookie,那么您唯一的选择是在您的 BE 上实施身份验证检查,它将基于该 cookie 返回响应(并且您使用此端点检查身份验证)。

    其他选项是不使用httpOnly cookie。因此,如果您切换到常规 cookie,您将能够像在 BE 上一样在 FE 上验证 JWT(在执行其他操作之前验证 JWT 的签名)。

    但是你应该知道普通的 cookie 和 httpOnly cookie 都可以被窃取,所以这就是他们不建议在 cookie 中存储 JWT 令牌的原因。 (但是是的 httpOnly cookie 比普通的要安全得多,但仍然不是 100% 安全)

    【讨论】:

    • 感谢@user2704821 抽出宝贵时间。我明白你的意思。
    最近更新 更多