收藏
回答

checkSession一直回调success怎么回事?

在手机和开发者工具中,checkSession可以根据用户的使用正常的检查登录态是否过期;

但是在电脑版的微信中打开小程序,checkSession一直走到success的回调中,这是什么原因造成的呢?

在手机和电脑中把小程序删除后,电脑重新打开还是登录态为正常,所以导致无法登陆!

最恐怖的是使用一个新的电脑,在一个手机和电脑都没有打开过小程序的微信中任然出现该问题!

看其他开发者在社区的反馈,说app.js中存在wx.login,排查后我们的代码中是不存在的。

代码:

checkSession的结果:


顺便问下红色的报错部分是什么东西?

最后一次编辑于  07-29
回答关注问题邀请回答
收藏

5 个回答

  • 小程序/小游戏开发-Link
    小程序/小游戏开发-Link
    置顶回答07-30

    checkSession 的作用是到后台检查生成的 sessionKey 是否有效,所以如果你在之前有调用过 login 并且获取了 sessionKey,在新客户端检查收到 success 回调是有可能的。

    正确的做法应该是进入小程序后先检查本地有没有未过期的登录票据(你们自己小程序生成的 sessionId 之类的串),有的话说明后台能找到对应的 sessionKey,这时候才用 checkSession 检查是否过期。如果登录票据都没有,那当然要先 login。

    07-30
    有用
    回复 2
    • 比尔盖雨
      比尔盖雨
      发表于小程序端
      07-30
      那我新创建的小程序,使用checkSession也是success怎么解释?
      07-30
      回复
    • Wོ
      Wོ
      11-13回复比尔盖雨
      他解释个🐔他解释   反正checkSession就没鸡儿用   到获取手机号时候还会有个问题   让特么先login再调获取手机号   获取手机号又不由api来调用   要button组件   又不知道用户什么时候点  只能在onLoad里就调用login   特么用户再过个40  50分钟点   seesionkey又过期了   解密失败
      11-13
      回复
  • 社区技术运营专员-CJiang
    社区技术运营专员-CJiang
    07-29

    请具体描述问题出现的流程,并提供能复现问题的简单代码片段(https://developers.weixin.qq.com/miniprogram/dev/devtools/minicode.html)。

    07-29
    有用
    回复 11
    • 比尔盖雨
      比尔盖雨
      发表于小程序端
      07-30
      社区中有好多出现这个问题的,我看其他帖子中代码给你们提供了,最终你们没有复现问题,就把这个问题给不了了之了。我们的流程是用户进入小程序后使用checkSession来查看用户登录态,如果没登录在页面中将显示登录按钮,如果登录则就不显示。我们使用新用户调试时checkSession也是走到success中,代码就是文档中给提供的实例代码。
      07-30
      回复
    • 社区技术运营专员-CJiang
      社区技术运营专员-CJiang
      07-30回复比尔盖雨
      试一下这边的清除登陆状态,再重试看看。
      07-30
      回复
    • 比尔盖雨
      比尔盖雨
      07-30回复社区技术运营专员-CJiang
      麻烦您仔细的看下我发的问题!我的问题是在pc版本的微信中打开小程序时出现的,而不是在开发者工具中出现的。难道在开发者工具中清楚登录状态可以关联到pc的微信小程序中?
      07-30
      回复
    • 社区技术运营专员-CJiang
      社区技术运营专员-CJiang
      07-30回复比尔盖雨
      在工具上会出现这个问题吗?
      07-30
      回复
    • 比尔盖雨
      比尔盖雨
      07-30回复社区技术运营专员-CJiang
      不会,手机上也不会出现这样的问题,只有电脑上会出现。
      07-30
      回复
    查看更多(6)
  • lumos
    lumos
    09-21

    这个bug到现在还没修复

    09-21
    有用 1
    回复
  • 倾
    10-20

    因为app.js中默认就有 wx.login() 的调用,所以导致每次测试都是success,可以先手动删除再进行测试即可。

    10-20
    有用
    回复
  • Matt
    Matt
    07-29

    你搜搜工程,看看wx.login 有没有别的地方调用

    07-29
    有用
    回复 1
    • 比尔盖雨
      比尔盖雨
      07-29
      有调用,使用checkSession检测登录态失效后会进行登录。用户登录后在其他地方有使用wx.login获取用户的手机号。但是获取手机号操作也是在用户登录后进行的。
      07-29
      回复
登录 后发表内容
问题标签