同一套业务逻辑,要实现小程序端和网页端。 后端用 python 写的,已经做前后端分离,MVP 方式。html 端的登录态判断是用的 flask 的 g 对象。 问题: 1 、是同一套后端好,还是后端逻辑各用各的? 2 、如果用同一套,该用自定义登录态么?如有,求给个 github 案例学习下。 谢谢。
1
vangkinva 2020-08-23 02:55:27 +08:00
既然前后端分离,就直接 jwt 方案哈,网页和小程序都用 jwt,都是很成熟的方案,小程序和网页端都很容易。
|
2
winglight2016 2020-08-23 10:10:39 +08:00
没用过 flask,但是想来应该有 middleware 来做鉴权吧,可以为不同客户端写不同的鉴权模块,用户信息统一放在一个地方能获取到就行。
|
3
amundsen 2020-08-23 10:10:46 +08:00
jwt 就行了,很适合这个场景。
|
5
SmartKeyerror 2020-08-23 11:53:29 +08:00
不管是小程序端还是 H5 端,都使用同一个 token 进行登录就好了,不管这个 token 是使用 JWT,还是自定义的 token 。
如果可以的话,可以做一个统一用户登录中心,开另外的一个微服务,该服务做的事情就是保存 H5 用户信息、小程序用户信息,维护 H5 用户和小程序用户之间的映射关系,以及登录、登录态的维护。 这样一来,如果后面有支付宝用户、APP 用户的话,也能够很好的兼容。业务端无需关心具体登录来源,只需要拿着 token 去该服务换取用户信息即可(以及判定登录状态)。 |
6
xuanbg 2020-08-23 12:45:47 +08:00
都改成用 token 就行了。
|
7
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', # 浏览器的异步请求 ), ``` |
8
9Tpsaajk9rdBKH2U 2020-08-23 21:31:53 +08:00
做一个统的登录接口,不管是 token 还是 sessionId,直接返加登录信息,其它的业务代码都是一样的就可以了
|