我试图弄清楚如何使用在 SPA 中传输的 JWT 它需要在 cookie 中,因为我们希望非 ajax 请求也发送 jwt,它应该对所有子域“正常工作”。我在服务器端生成并更新了带有令牌的 cookie。我想弄清楚的是客户端应该如何获取信息(本质上是登录用户的 is_logged_in 和用户名)并使该信息与服务器端 cookie 生命周期保持同步,因为我希望在 1 小时后到期没有请求,当发生这种情况时它应该显示在浏览器上。我的问题是我想要的用户信息位于 http_only 的 cookie 中以防止 XSS。我已经想到了几个选项,并想就什么是合理的安全妥协提出意见:
1) 在两个 cookie 中发送相同的 jwt 令牌,一个用于实际的服务器端 auth & auth,标记为 http_only 和安全,第二个相同但不是 http_only,因此客户端可以对其进行解码以获取当前用户信息和到期时间。
2) 在第二个 cookie 中发送用户信息,该 cookie 不是 http_only 并且是普通视图,但只有登录用户的用户名。
3) 尝试让客户端自己跟踪登录信息,到目前为止这似乎有问题,而且很容易搞砸,但没有不安全的 cookie 到处乱飞。
我想我很可能错过了上述选项的一些安全方面,因此在这里问。谢谢!