收藏
回答

授权不授权都没影响,所以wx.checkSession到底怎么用?

  1. 在未授权状态下进入小程序,获取不到用户昵称,没有在onShow里调用wx.login({}),没有弹出授权框,wx.checkSession回调fail,再授权后回调true。

  2. 在未授权状态下进入小程序,获取不到用户昵称,在onShow里调用wx.login({})没有弹出授权框,wx.checkSession回调true授权后回调true。

  3. 之前授权过状态下进入小程序,获取到用户昵称,没有在onShow里调用wx.login({}),没有弹出授权框wx.checkSession回调fail调用wx.login({})后回调true。

  4. 之前授权过状态下进入小程序,获取到用户昵称,在onShow里调用wx.login({}),没有弹出授权框,wx.checkSession回调true

所以wx.checkSession只跟有没有wx.login有关系?跟授权这个动作没关系?


我现在全用

wx.getStorageSync('token')

来判断用户有没有授权或者授权过期。

所以大家都是在什么情况下使用checkSession?

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

2 个回答

  • 随遇而安
    随遇而安
    2020-03-30

    restful举例:

    1.小程序端 wx.login 获取授权码

    2.小程序端调用自有系统登录接口,自有系统调用微信接口code2Session获取openid和session_key后,在微信后台认为标记是登录。自有系统生成token返回。

    3.小程序端判断自有系统的token即可获知自有系统的登录状态,使用自有系统token与自己 的后台交互

    大部分业务这样即可满足。部分小程序API,微信后台在认为用户是登录状态时,可获取信息量较大(例如 getUserInfo)所以:小程序先使用checkSession校验,然后进行123步骤。如果失效,可以重新进行自家系统的登录。

    这里需要清晰:

    1.用户在微信后台认为的登录状态。

    2.用户在自家系统认为的登录状态。

    (记住后台调用code2Session时,微信后台才算用户的登录状态)

    方案1:1.判断自家系统token 2.判断是否重新登录

    方案2:使用到微信登录状态的api时:延续方案1,进行checkSession,判断是否登录

    方案3:后台单独开一个接口调用code2Session,自有系统token存在并未失效,但checkSession失败时单独调用。

    session_key和openid 给前端是没用的。另外登录状态传给后台也是没用的。后台只要支持可以再次登录就好了,注意处理调用wx.login授权码失效的情况。

    2020-03-30
    有用
    回复
  • !!!Σ(っ°Д°;)っ
    !!!Σ(っ°Д°;)っ
    2019-08-30
    1. 进入小程序

    2. checkSession,如果返回fail,去【3】,如果返回true去【4】

    3. wx.login

    4. 检查我自己是否保存和服务器交互的sessionkey,如果没保存去【3】,如果有保存就完成登录逻辑。

    2019-08-30
    有用
    回复 10
    • Lintvo
      Lintvo
      2019-08-30
      这样用户会不会每隔两天打开小程序都要授权一下?用wx.getStorageSync('token')感觉只要不删微信都能一直保持授权状态
      2019-08-30
      回复
    • !!!Σ(っ°Д°;)っ
      !!!Σ(っ°Д°;)っ
      2019-08-30回复Lintvo
      授权不授权的是之后再说的事儿,整个登录流程就是这样,既然微信维护好了登录状态,用就行了
      2019-08-30
      回复
    • !!!Σ(っ°Д°;)っ
      !!!Σ(っ°Д°;)っ
      2019-08-30回复Lintvo
      只有上面的登录流程走完了之后才需要去考虑用户授权的事儿
      2019-08-30
      回复
    • Lintvo
      Lintvo
      2019-08-30
      好吧,就是觉得这个登录状态有点 可有可无的BUG。
      2019-08-30
      回复
    • Lintvo
      Lintvo
      2019-08-30
      感谢回复
      2019-08-30
      回复
    查看更多(5)
登录 后发表内容
问题标签