我应该在哪里保存客户端的 JWT 以供将来请求?
Posted
技术标签:
【中文标题】我应该在哪里保存客户端的 JWT 以供将来请求?【英文标题】:Where should I save client's JWT for future requests? 【发布时间】:2019-08-22 19:18:03 【问题描述】:我的 api 在登录时向客户端返回一个令牌,这反过来又要求客户端每次都将其放入标头中以向服务器发出请求。 我应该在哪里保存这些令牌? 如果保存在浏览器存储中,那么任何人都可以复制并登录到客户的帐户
【问题讨论】:
【参考方案1】:你是对的。将其存储在本地存储中是不安全的。
JWT 需要存储在 HttpOnly cookie 中,这是一种特殊类型的 cookie,仅在 HTTP 请求中发送到服务器,并且永远无法从浏览器中运行的 javascript 访问(读取或写入)。
您可以在这篇关于 JWT 最佳实践的文章中阅读更多相关信息。 https://logrocket.com/blog/jwt-authentication-best-practices/
【讨论】:
但是javascript无法读取其他来源的localStorage,可以吗?那么,除了XSS,让JS读/写token应该是安全的吧? 说“保存 XSS”就像说“除非你的身份被黑客入侵”。 XSS 是一个严重的问题,因此使用仅 HTTP cookie 是一种更好的做法。 @drdwilcox:是的,再想一想,我倾向于同意。以上是关于我应该在哪里保存客户端的 JWT 以供将来请求?的主要内容,如果未能解决你的问题,请参考以下文章