Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我没有使用 cookie,而是使用随每个请求发送的 JWT 令牌。每个请求都是一个 POST 请求,因此令牌不会保存在浏览器的历史记录中。
这是一个单页应用程序。
令牌看起来像:
{ userId: 12345678, expires: <UNIX timestamp>, otherInfo: <something> }
一切都是 SSL 安全的。用户登录时在服务器上创建令牌。
这会是替换 cookie 的好方法吗?或者您是否发现任何缺陷?
不,这不是一个好的解决方案。使用 cookie(带有httpOnly标志)进行跨请求持久性不是可选的 - 这是安全存储会话凭据的唯一方法,这样页面上的 JavaScript 代码就无法直接访问它。
httpOnly
这是必不可少的,以防止例如。XSS 攻击中的会话窃取,通过确保脚本无法访问凭据,但它们仍可用于对服务器的请求。
您对 JWT 的使用似乎也不能真正解决问题 - 为什么您不能使用现有会话实现来使用会话 cookie?这种东西正是他们的目的。