我熟悉Web Storage APIs和cookies,但无法确定存储认证令牌的最安全方式。我想知道这是否会影响任何第三方库。
我希望能够获得一份详尽的可用方法列表,包括每种方法的优缺点以及最佳方式(如果有的话)。
我熟悉Web Storage APIs和cookies,但无法确定存储认证令牌的最安全方式。我想知道这是否会影响任何第三方库。
我希望能够获得一份详尽的可用方法列表,包括每种方法的优缺点以及最佳方式(如果有的话)。
使用基于令牌的身份验证,您可以选择在哪里存储JWT。我们强烈建议您将令牌存储在本地存储/会话存储或Cookie中。
通常,JWT存储在浏览器的本地存储中,在大多数情况下都可以很好地工作。
当使用用户名和密码登录用户时,响应正文包含access_token JWT
。然后,您需要在客户端代码中处理此响应。该令牌可以存储在localStorage或sessionStorage中。
localStorage和sessionStorage均扩展自Storage。它们之间的唯一区别在于数据的持久性:
localStorage
- 数据持久存在,直到显式删除为止。所做的更改保存并对站点的所有当前和未来访问者可用。
sessionStorage
- 所做的更改保存并对当前页面以及同一窗口中以后访问站点的访问者可用。关闭窗口后,存储将被删除。
您还可以使用Cookie存储JWT。设置Cookie的确切方式取决于您使用的客户端语言。
有不同的选项来控制Cookie的生存期:
httpOnly
标志,Cookie 可以被 JavaScript 和服务器端代码都读取,或仅允许服务器端读取。Referer
和 Origin
标头来部分预防 CSRF 攻击。原始文章:https://auth0.com/docs/security/store-tokens#how-to-implement