手机授权登陆的情况下,同一个微信号pc端授权登陆成功,再返回看手机端微信出现40001错误,进行相反的操作pc端出现错误,必须清除缓存才能拿到用户信息,这是因为什么呢?
手机授权登陆的情况下,同一个微信号pc端授权登陆成功,再返回看手机端微信出现40001错误,进行相反的操作pc端出现错误,必须清除缓存才能拿到用户信息,这是因为什么呢?
1 回答4.1k 阅读✓ 已解决
3 回答1.9k 阅读✓ 已解决
2 回答2.3k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答676 阅读✓ 已解决
2 回答608 阅读✓ 已解决
微信每次登录授权成功后会获得一个access_token,后续所有调用接口操作都必须这个token值,否则接口执行不会生效。这个 access_token 生存期是 2 个小时,有效期内可以重复使用它,直到过期后才需要重新获取。
在手机上获得授权会得到 access_token1,手机可以正常调用接口。再通过PC端再去进行授权登录又会获取一个新的 access_token2,此时PC端访问接口当然没有问题,但是手机端仍然用已经被废弃的 access_token1 去访问,接口进行合法性验证时会发现这不是有效的token值,从而拒绝服务。
微信官方文档提到接口返回码40001的含义:
所以正确的作法应该是这样的:无论手机端登录还是PC端登录,首先要检查当前获取的 access_token 是否过期失效,如果未过期则继续使用,如果过期则更新这个 access_token 。保证所有平台共享同一个 access_token。