收藏
回答

登录有效期,wx.checkSession 和 自己后端验证的 token 的处理方案?

如何判断用户是否登录,在移动端常见的手段是通过 token 来验证登录的时效性。在用户 wx.login 登录之后,生成一个具有有效期的 token,返回给客户端使用,token 超过了有效期说明用户的登录状态失效了,需要重新登录。

查看微信小程序官方文档中有一个 wx.checkSession 检查登录态是否过期的方法。

困扰点:后端检查 token 来验证用户登录 和 wx.checkSession,该如何处理这两者的关系?以哪个验证为主?

谢谢!

回答关注问题邀请回答
收藏

3 个回答

  • 哄哄
    哄哄
    2022-08-30

    不用纠结了 ,这个东西我以前不懂 以为他可以随时检测用户的token, 其实后端有自己的过期时间就是正确的的过期时间,根本不需要考虑用微信的服务器去每次检测这个东西,而且浪费时间,体验很差

    2022-08-30
    有用
    回复
  • 貌似祸害
    貌似祸害
    2020-07-06

    每次login就会刷新session,所以如果登录态仅保存在生命周期内,可以不考虑checkSession

    2020-07-06
    有用
    回复
  • 微喵网络
    微喵网络
    2020-07-06

    wx.checkSession是检查wx.login获取到的session_key有没有过期,如果你已经自己处理过,自己生成了token,就可以不用wx.checkSession

    2020-07-06
    有用
    回复 6
    • 暴走的西瓜
      暴走的西瓜
      2020-07-06
      首先很感谢的你回答。你答案中的方案有想过,但是会出现这样一种场景:某用户登录后存储的 token 有限期为30天,假设微信 session_key 的有效期为3天。因为并没有使用 wx.checkSession 去做验证,那么这样会不会出现一些未知的问题?
      2020-07-06
      回复
    • 微喵网络
      微喵网络
      2020-07-06回复暴走的西瓜
      既然是“未知”的,就不要管了
      2020-07-06
      回复
    • 暴走的西瓜
      暴走的西瓜
      2020-07-06回复微喵网络
      我觉得有必要再去考虑一下。谢谢
      2020-07-06
      回复
    • Giddens
      Giddens
      2020-08-19回复暴走的西瓜
      会 比如解密用户授权信息 用过期session_key去解密当前获取的加密用户信息就会解析失败 需要重新调用wx.login
      2020-08-19
      回复
    • Tusi
      Tusi
      2020-11-27回复暴走的西瓜
      我也在想这个问题,需要把哪些涉及session_key的调用列出来,统一抛一个内部错误码给前端,前端重新走wx.login流程。而前端最好在api封装处根据这个错误码做wx.login流程,wx.login成功后重新调一次原接口
      2020-11-27
      1
      回复
    查看更多(1)
登录 后发表内容
问题标签