django 前后端分离,后端只返回 json,应该如何做登录登出和状态保持,并且拦截未登录用户不能访问,求思路。
1
JC1027 2020-04-13 17:49:20 +08:00
jwt 吧
|
2
workspace 2020-04-13 18:33:47 +08:00
登陆接口逻辑验证成功后 session 设置 is_login 为 True
下次请求检查 session 里的 is_login 如果为 False 即为匿名(未登录)用户 |
3
Acoolda 2020-04-13 19:19:10 +08:00
JWT 啊
|
4
qsbaq 2020-04-13 19:29:08 +08:00
|
5
Hstar 2020-04-13 19:36:05 +08:00
这问题问的也太基础了吧,特别是问题二“如何拦截未登录用户不能访问”。
麻烦去把 dj 官方文档的 Authentication 一章节全看完,比我们在这回帖全面好多。 |
6
horkooo 2020-04-13 19:37:56 +08:00 via Android
token 验证和 token 刷新。前端想用户体验高的话跟后端约定好 token 过期时间,前端定时器检查当前时间差,避免不停重复请求。或者全局 socket 连接。重要的是不要走寻常路,别让下一个接手的人看懂你的代码和思路
|
8
ytmsdy 2020-04-13 21:00:21 +08:00
Django REST framework
|
9
imzxk 2020-04-14 08:24:13 +08:00
DRF 、JWT,一把梭
|
10
wizardoz 2020-04-14 09:28:28 +08:00
这需要啥思路? django 自带的 session 认证难道不支持吗?
另,楼主需要的是保持状态,jwt 不太符合 |
12
xpresslink 2020-04-14 12:00:43 +08:00
楼主学习一下 web 开发一些基础知识吧。django 的登录其实就是在客户放了一个名字为 sessionid 的 cookie 存了一个长的字符串。所以你研究一下 django.contrib.auth.login / backend.authenticate
直接把 request.session[SESSION_KEY] 的 SESSION_KEY 字符串推送给前端,写到 sessionid 的 cookie 里面就完成的登录了。 |
13
yupozhang 2020-04-18 10:24:51 +08:00
可以参考一下我们开源项目的登录实现思路
前后端分离,前端 react,后端 django,后端 python 验证登录成功后返回一个带有 token 信息的 json 对象给前端,如果用户没有登录或者登录过期自动跳转到登录页面。 项目地址: https://github.com/openspug/spug 欢迎加星。 |