微信小程序应该如何保证用户登录状态呢?

2022-08-09 17:18:54 +08:00
 Ufo666

比如在一个酒店场景,用户办理入住,用户通过预留手机号登录小程序。一般做法是登录成功生成 token ,token 有效期设置到用户的离店时间,以后每次请求都带上,失效则退出登录。但是,如果,用户提前离店,而 token 此时还能用,岂不是不合法?

1326 次点击
所在节点    问与答
8 条回复
likai
2022-08-09 19:45:09 +08:00
登录成功后才查询客户入住信息
BugCry
2022-08-09 20:12:54 +08:00
如果你不用微信的账号体系,直接按 H5 处理就好了啊
Envov
2022-08-09 20:49:33 +08:00
token 虽然有过期,但是不适用这个场景,可以在服务端维护用户是否过期的状态,每次用户带 token 过来都看看是否过期(可以在 token 中带会话 id),如果过期就不响应
sammeishi
2022-08-09 21:53:24 +08:00
和小程序无关,所有登录类都有这个情况,比如我网吧登录淘宝然后走人,淘宝怎么能知道?。。
这类问题处理办法蛮多的,像酒店这个情况最简单的是在离店时你肯定要结费,收银系统触发注销 token 不就行了。
kingjpa
2022-08-09 23:24:16 +08:00
办理入住后 直接注销 token 不就完了吗?
Felldeadbird
2022-08-10 00:27:31 +08:00
没看懂你的问题卡在哪。

你在小程序本地存储了 token ,那么每次请求这个 token 都和服务器校验就可以了。服务器只要标记这个 token 失效了,用户就无法继续使用了。
Jooooooooo
2022-08-10 00:29:41 +08:00
没看懂问题是啥意思...

退房了这个用户查询订单状态就是完结状态啊
kop1989smurf
2022-08-10 00:54:53 +08:00
首先,你的 token 使用不合理。业界通用的理解 token 是一个 API 临时授权,把授权和业务挂钩是大忌。

然后,修改意见:
1 、check out 时手动 token 置超时。
2 、通过 openID 与用户的关系进行持久化绑定,token 有效时间缩短到分钟级别。超时自动登录。

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

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

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

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

© 2021 V2EX