django - Django Sessions:从服务器获取登录用户数据的正确方法?
问题描述
我使用 SessionAuthentication 设置了我的 API。一旦用户登录,我将他们重定向到他们在 React 中的个人资料页面。一旦他们被重定向到他们的个人资料页面,我想进行 REST 调用以检索他们的个人资料数据并将其插入页面上的适当位置。我看到了几种方法可以做到这一点:
- 当用户登录时,将他们的用户 ID 放入响应对象 (DRF) 中,然后将其存储在客户端的某个位置(Redux 存储、会话存储或本地存储)。然后,当他们被重定向到登录页面时,对 /users/users_id 进行 REST 调用。
- 使用 Django 会话,登录用户会自动绑定到每个请求。那么我什至需要在这里关注 Rest 吗?我可以调用 /users,如果用户通过身份验证,则返回他们的数据。
我将不胜感激。谢谢你。
解决方案
使用 SessionAuthentication,在成功登录后,浏览器会自动为该域(或 ip:port)保存一个 sessionId cookie。无论使用 Django 还是 React,发送请求都会从同一个域发送该 cookie,并对用户进行身份验证,使您的 request.user 成为用户。
您可以在检查页面时检查 cookie -> 应用程序 -> Cookies -> 您的域 -> sessionId
基本上,您可以通过 Django 登录,它也会使用 React 登录。无需手动存储任何内容。只需为两者使用相同的域。
推荐阅读
- asp.net - AspNet.Security.OpenIdConnect 与 OAuthAuthorizationProvider
- ios - 如何防止alamofire将“&”符号放在参数前面
- java - 为什么 Java Base64 解码返回不可读的字符
- hy - 如何评估条件案例并返回函数对象?
- survival - Stata:如何从内存中清除 sts 图?
- typescript - 使用量角器实现 ESC 以关闭没有任何输入元素的弹出窗口
- jquery - HTML选择下拉选项在背景上重叠问题
- c# - 如何使用 DisplayFor 发布值
- jsf-2 - 添加了 JSF Tomahawk 库删除列表项之间的空间
- java - 如何使用字符串、数字和空字符串对列表进行排序?