繁体   English   中英

在 angular 中存储 jwt 的位置

[英]Where to store jwt in angular

我已经看到像 twitter 这样的网站在 http header 中将身份验证令牌发送回他们的服务器,正如人们推荐的那样,我无法在浏览器中找到它。 在 cookies 和本地存储中都没有。 有人可以解释一下他们是如何做到的,或者至少要遵循什么最佳做法。

有不同的方法,但一般来说,如果您的 JWT 作为一种授权,您希望将其置于外部 Javascript 无法触及的范围内,以保护 JWT。

这可以通过使用范围为您的域和httpOnly的 cookie 来完成,以防止 CSRF 和 XSS。 此选项具有通过会话持续存在直到 cookie 最终到期的附加值。 这样做的缺点是无法提取在 UI 上显示可能需要的数据。 这个缺点可以通过一个经过验证的端点来解决,该端点返回当前经过验证的 session 的用户数据。

Another option is if you need access to some of the contents of the jwt on the frontend, you can store it in memory (such that it's only accessible to your application code by encapsulating it) and sent along as a header in your authed http requests . 这里最大的缺点是 jwt 不会在页面重新加载时保持不变。

最流行的方法是将令牌存储在本地存储中。 在这里您可以找到更详细的信息。 请分享您的代码并向我们展示您尝试了什么。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM