gpt4 book ai didi

authentication - 如何在使用 httpOnly cookie 时保护 SPA 中的私有(private)路由

转载 作者:行者123 更新时间:2023-12-03 00:12:36 25 4
gpt4 key购买 nike

我想通过 JWT 身份验证来保护我的 SPA 私有(private)路由。为了使一切尽可能安全,我想使用 httpOnly cookie 在客户端存储我的 access_token

使用 httpOnly cookie 可以很大程度上保护我免受 XSS 攻击,但不幸的是,这种方法不允许我检查 cookie 是否确实存在于浏览器中。

在这种情况下 - 我如何实现一些逻辑来防止未登录的用户访问我的 SPA 的私有(private)、安全路由?

我是否被迫使用非httpOnly cookie 或localStorage 来实现此目的?

最佳答案

Am I forced to use non-httpOnly cookies or localStorage for this?

没有。使用 httpOnly 标志和(如果可能)使用 secure 标志将您的 access_token 保存在 cookie 中。我们将此 cookie 称为 session_cookie

当用户成功登录时,您可以返回 2 个 cookie:session_cookie 和另一个通知 JS 用户已通过身份验证的 cookie(我们称之为 SPA cookie )。

您的 session_cookie 无法通过 JS 访问,因此它不易受到 XSS 的攻击。此 cookie 会在每次请求时发送到服务器,服务器会检查是否是有效 token ,否则会返回未经授权的错误。

您的 SPA cookie 没有 httpOnly 标志,因此可以通过 JS 访问它,但服务器不会使用它来验证用户身份,所以假这个cookie是没有用的。

只要您的 SPA 收到未经授权的错误,您就可以删除 SPA cookie

关于authentication - 如何在使用 httpOnly cookie 时保护 SPA 中的私有(private)路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51722504/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com