收藏
回答

wx.checkSession 文档描述中有存在混淆概念的部分

https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.checkSession.html

在功能描述部分:

登录态过期后开发者可以再调用 wx.login 获取新的用户登录态。调用成功说明当前 session_key 未过期,调用失败说明 session_key 已过期。

主要问题:上面这段描述。前面说明了wx.checkSession这个API调用后会获得身份是否失效的状态。后面紧接着告知失效后可以再调用 wx.login 获取新的用户登录态,

但之后紧跟着就是说调用成功 说明session_key 未过期,调用失败说明 session_key 已过期。 (这句话是描述wx.checkSession的。但紧跟在wx.login调用需求后。容易混淆概念)

会给人一个错觉。认为调用wx.login 成功或失败 代表session_key过期或未过期。 此处应该加一个换行。或者直接带上wx.checkSession或 当前API调用成功说明当前session_key 未过期,调用失败说明 session_key 已过期。

花了几分钟,才理解这里面的事情。还特意又去翻了一下 wx.login api 的描述。。。希望可以将文档完善的更好。


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

4 个回答

  • 沈辰
    沈辰
    04-09

    我觉得对于初学者容易混淆,其实这里面有2个概念,一个是wx.login(),另一个是session_key。

    混淆点在于登录态失效过期和session_key失效过期需要重新获得session_key,这2个东西是什么关系?

    调用wx.login()时,微信服务器会返回一个code,这时你是处于登录的状态,开发者拿着code,再发送请求到微信服务器去换取新的session_key;

    因为session_key会过期,所以提供了wx.checkSession方法来验证session_key是否过期,那么sesssion_key过期怎么办,重新调用wx.login()方法获得新的code,因为拿到code才能去微信服务器获得新的session_key。

    用验证session_key是否过期的方法来表示登录是否过期,然而,只要session_key不过期,无需重新调用wx.login()。

    补充:官方说即使session_key没有失效,生新调用wx.login()方法获得新的code,也会造成session_key过期失效。(不对的地方请大神指教:)。。。)

    04-09
    有用
    回复
  • 汪汪汪汪汪
    汪汪汪汪汪
    02-21

    确实

    02-21
    有用
    回复
  • xiao
    xiao
    2023-10-27

    官方文档登录这块的逻辑巨乱,哪有清楚的说明?

    2023-10-27
    有用
    回复
  • Jianbo
    Jianbo
    发表于小程序端
    2023-07-08

    可能你的理解不同。

    2023-07-08
    有用
    回复 1
    • 一只特立独行的猫
      一只特立独行的猫
      2023-07-08
      并非我理解不同,是因为他上面主体换行了。只有这一行 。还在一起。所以很难让人理解他在描述两个API的效果。
      2023-07-08
      1
      回复
登录 后发表内容