微信网页授权登陆问题

手机授权登陆的情况下,同一个微信号pc端授权登陆成功,再返回看手机端微信出现40001错误,进行相反的操作pc端出现错误,必须清除缓存才能拿到用户信息,这是因为什么呢?

阅读 2.8k
1 个回答

微信每次登录授权成功后会获得一个access_token,后续所有调用接口操作都必须这个token值,否则接口执行不会生效。这个 access_token 生存期是 2 个小时,有效期内可以重复使用它,直到过期后才需要重新获取。

在手机上获得授权会得到 access_token1,手机可以正常调用接口。再通过PC端再去进行授权登录又会获取一个新的 access_token2,此时PC端访问接口当然没有问题,但是手机端仍然用已经被废弃的 access_token1 去访问,接口进行合法性验证时会发现这不是有效的token值,从而拒绝服务。

微信官方文档提到接口返回码40001的含义:

获取access_token时AppSecret错误,或者access_token无效。请开发者认真比对AppSecret的正确性,或查看是否正在为恰当的公众号调用接口

所以正确的作法应该是这样的:无论手机端登录还是PC端登录,首先要检查当前获取的 access_token 是否过期失效,如果未过期则继续使用,如果过期则更新这个 access_token 。保证所有平台共享同一个 access_token。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题