V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
Ufo666
V2EX  ›  问与答

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

  •  
  •   Ufo666 · 2022-08-09 17:18:54 +08:00 · 1566 次点击
    这是一个创建于 871 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    然后,修改意见:
    1 、check out 时手动 token 置超时。
    2 、通过 openID 与用户的关系进行持久化绑定,token 有效时间缩短到分钟级别。超时自动登录。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1107 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 18:56 · PVG 02:56 · LAX 10:56 · JFK 13:56
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.