在我的项目中,我使用nodeJS和react。对于后端的会话,我使用httpOnly cookie。因此,当用户登录时,我们将发送带有JWT令牌的httpOnly cookie(httpOnly cookie包含JWT令牌(。现在使用这个httpOnly cookie,我正在检查后端的身份验证。
现在,问题是如何在react端管理会话(或进行身份验证检查(?因为在这里,我们不能使用javascript访问httpOnly cookie。
例如:
- /login路由-->httpOnly cookie发送给用户
- /仪表板---->假设用户想在不登录的情况下打开它的路由,那么我们首先需要检查用户是否有效(如果我们使用本地存储,那么这会很容易,因为我们只需要检查本地存储中的令牌存储(。现在如何检查cookie中用户的真实性
如果有人有任何想法来解决这个问题,那将是非常有帮助的。
如果您只想使用httOnly
cookie,那么您唯一的选择就是对BE执行身份验证检查,它将根据该cookie返回响应(您使用此端点检查身份验证(。
另一种选择是不使用httpOnly
cookie。因此,如果您切换到常规cookie,您将能够在FE上验证JWT
,就像在be上一样(在预执行其他操作之前验证JWT
的签名(。
但你应该知道,普通的cookie和httpOnly
cookie都可能被盗,所以这就是他们不建议在cookie中存储JWT
令牌的原因。(但是的,httpOnly
cookie比普通cookie安全得多,但仍然不是100%安全(