同一套业务逻辑,小程序(token)和 html(session)端,如果共用同一后台,登录态如何做?

2020-08-23 01:44:05 +08:00
 lianjin

同一套业务逻辑,要实现小程序端和网页端。 后端用 python 写的,已经做前后端分离,MVP 方式。html 端的登录态判断是用的 flask 的 g 对象。 问题: 1 、是同一套后端好,还是后端逻辑各用各的? 2 、如果用同一套,该用自定义登录态么?如有,求给个 github 案例学习下。 谢谢。

2574 次点击
所在节点    Python
10 条回复
vangkinva
2020-08-23 02:55:27 +08:00
既然前后端分离,就直接 jwt 方案哈,网页和小程序都用 jwt,都是很成熟的方案,小程序和网页端都很容易。
winglight2016
2020-08-23 10:10:39 +08:00
没用过 flask,但是想来应该有 middleware 来做鉴权吧,可以为不同客户端写不同的鉴权模块,用户信息统一放在一个地方能获取到就行。
amundsen
2020-08-23 10:10:46 +08:00
jwt 就行了,很适合这个场景。
Leon6868
2020-08-23 11:41:40 +08:00
@amundsen 但是如果想提前删除登录状态,jwt 就有点难了啊
SmartKeyerror
2020-08-23 11:53:29 +08:00
不管是小程序端还是 H5 端,都使用同一个 token 进行登录就好了,不管这个 token 是使用 JWT,还是自定义的 token 。
如果可以的话,可以做一个统一用户登录中心,开另外的一个微服务,该服务做的事情就是保存 H5 用户信息、小程序用户信息,维护 H5 用户和小程序用户之间的映射关系,以及登录、登录态的维护。
这样一来,如果后面有支付宝用户、APP 用户的话,也能够很好的兼容。业务端无需关心具体登录来源,只需要拿着 token 去该服务换取用户信息即可(以及判定登录状态)。
xuanbg
2020-08-23 12:45:47 +08:00
都改成用 token 就行了。
find456789
2020-08-23 13:08:39 +08:00
用 django,配合第三方框架 drf,drf 可以配置同时支持 session 和 token,


```python

'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication', #手机 app
'rest_framework.authentication.SessionAuthentication', # 浏览器的异步请求
),
```
9Tpsaajk9rdBKH2U
2020-08-23 21:31:53 +08:00
做一个统的登录接口,不管是 token 还是 sessionId,直接返加登录信息,其它的业务代码都是一样的就可以了
amundsen
2020-08-25 17:15:32 +08:00
@Leon6868 不会啊
amundsen
2020-08-25 17:16:03 +08:00
@Leon6868 有什么场景需要提前删除客户端的登录态?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/700610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX