gpt4 book ai didi

Django Rest Framework + React - token 与 session 身份验证

转载 作者:行者123 更新时间:2023-12-03 13:45:34 24 4
gpt4 key购买 nike

虽然 SO 上有很多关于这个主题(或密切相关)的帖子,但我没有找到我要找的内容。

正如标题所示,我使用 Django Rest Framework 作为后端,并使用 React 作为前端。

现在我实现了 token 身份验证,并且运行完美。唯一的问题是 token 存储在React的状态中,如果用户刷新页面,他就不再登录( token 丢失)。

所以,现在我想切换到 session 身份验证,因为问题已经解决了。但这需要我做一些研究,在我去那里之前我想知道这是否是最好的选择。

我的问题:

即使 React 的状态发生变化,我是否需要使用 session 身份验证来让用户保持登录状态。或者我也可以通过 token 身份验证实现相同的目标(以安全且负责任的方式?)

我想我可以将 token 保存在 cookie 中,但这对我来说似乎并不安全。

编辑:

后来我意识到,为什么不将 token 存储在 session 中呢?

最佳答案

SessionAuthentication 将是实现您想要的目标的最直接的方法。配置描述于 http://www.django-rest-framework.org/api-guide/authentication/#setting-the-authentication-scheme这将在由浏览器处理的 cookie 中设置 session ID。

或者,您可以在浏览器的 cookie 中存储 token ,但这很容易受到 XSS 攻击和其他 JavaScript 攻击。为了提高安全性,您可以将 token 存储在 HttpOnly 中曲奇饼。 Cookie 将在浏览器关闭的选项卡/窗口中保留。

还要澄清大多数浏览器都内置了 cookie 处理功能。您的 react 状态位于用户空间中,并且位于与 cookie 存储不同的内存空间中。

更多信息:

  1. Ask HN: Cookies vs. JWT vs. OAuth
  2. https://developer.okta.com/blog/2017/08/17/why-jwts-suck-as-session-tokens
  3. http://cryto.net/~joepie91/blog/2016/06/13/stop-using-jwt-for-sessions/

关于Django Rest Framework + React - token 与 session 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51800026/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com