收藏
回答

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 的描述。。。希望可以将文档完善的更好。


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

3 个回答

  • 沈辰
    沈辰
    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
    有用
    回复
  • 肖建军
    肖建军
    2023-10-27

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

    2023-10-27
    有用
    回复
登录 后发表内容