获取手机号无法保证code有效?
官方文档如是说:
> 在回调中调用 wx.login 登录,可能会刷新登录态。此时服务器使用 code 换取的 sessionKey 不是加密时使用的 sessionKey,导致解密失败。建议开发者提前进行 login
;或者在回调中先使用 checkSession
进行登录态检查,避免 login
刷新登录态。
其中给出2个方案:
1、提前调用wx.login,获取code。
2、在回调中调用 checkSession
检查登录状态
但这2个方案都有缺陷:
1、code码时效只有5分钟,如果提前获取到code后,用户5分钟之后才授权,那么这个code码也已经失效。
2、checkSession检查登录失效后,还是需要再调用wx.login获得code,但此次用户授权手机号也无效了,需要用再次授权,影响用户体验。
总之,目前官方文档给出的方案都不完美。
希望有大佬能给出完美方案,小弟感激不尽