在 angular 中存储 jwt 的位置

Where to store jwt in angular

我看到像 twitter 这样的网站在 http header 中将身份验证令牌作为不记名授权发送回他们的服务器,正如人们所建议的那样,但我找不到他们实际将其存储在浏览器。既不在 cookie 中,也不在本地存储中。谁能向我解释一下他们是如何做到的,或者至少要遵循的最佳做法是什么。

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

有不同的方法,但一般来说,如果您的 JWT 充当一种授权,您希望使其远离外部 Javascripts 以保护 JWT。

这可以通过使用范围限于您的域和 httpOnly 的 cookie 来实现,以防止 CSRF 和 XSS。此选项具有持续 session 秒直到 cookie 最终过期的附加值。这样做的缺点是无法提取在 UI 上显示可能需要的数据。这个缺点可以通过拥有一个授权端点来克服,该端点 returns 当前授权 session.

的用户数据

另一种选择是,如果您需要访问前端 jwt 的某些内容,您可以将其存储在内存中(以便您的应用程序代码只能通过封装来访问它)并作为 header 在您授权的 http 请求中。这里最大的缺点是 jwt 不会在页面重新加载时持久化。