- 进入小程序时不能直接每次调用wx.login吗?为啥还要查一下wx.checkSession?
- 目前我的流程:进入小程序时第一步查询是否有scope.userInfo,如果没权限则调用wx.authorize,如果有授权则是调用wx.login,拿到code再次请求wx.getUserInfo,拿到getUserInfo返回的数据后向后端请求获取用户的具体数据。
- 上面的流程还需要加上wx.checkSession吗?是不是我流程上出问题了,?为啥不能每次进入小程序直接调用wx.login?这样每次登录态不就是最新的吗?为啥还要wx.checkSession?有大佬能指导一下流程吗?有点乱
用手机号登陆的 , 当然需要用到session_key , 检查session_key + encryptedData + iv , 就可以直接登录 , 不需要走wx.login api。手机号登录还是最优解 , openid + unionid , 离开了这个平台就没用了 , 况且多平台还要走微信开放平台。 而且wx.checkSession这个api一直都有问题 , 可以用 , 但不可以信
OPENID 是身份识别,如果不需要特别的API使用,没必要wx.checkSession。个别特殊的API需要验Session有效才能操作(这里说的SESSION是微信方服务器的)不是自己服务器的SESSION。
所以你自己只用OPENID使和的话时效自己控制,但微信服务器的,就需要验证登录有效性。所以才需要 wx.checkSession 先验证一下是否有效,有效则调用微信方API接口换取有用的数据。
如果每次进来都云调用LOGIN。 并不妥,有调用次数限制。每次进入小程序执行一次就行了。其它时候进入,验证是否过期就行了。过期就重新登发,没过期就调用本地存储的TOKEN使用。以减少不必要的请求。
我直接是把拿到相对应的信息放在缓存中,缓存失效的时候,再进行login就行了