php - 微信网页授权登陆问题

查看:290
本文介绍了php - 微信网页授权登陆问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

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

解决方案

微信每次登录授权成功后会获得一个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。

这篇关于php - 微信网页授权登陆问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆