收藏
回答

关于wx.login 和 wx.getUserInfo的先后顺序

框架类型 问题类型 API/组件名称 终端类型 操作系统 微信版本 基础库版本
小程序 Bug wx.login wx.getUserInfo 客户端 iOS 6.6.7 2.0.9

介绍一下情况:   我是前端,我是先getUserInfo然后再去调用wx.login,几乎每次只要调用到app.js的时候都会调用以上两个接口,然后现在的问题是: 后台拿着我给的 code iv encryptData ,解密不了session_key,解密的时候都是空的,后台说要拿到其中的union_id还是什么,总之是必须要以上这几个参数.


现在的问题是,解密不出来,跟我这边login和getUserInfo的顺序以及频率有关系么,频率差不多是两三分钟一次,同事是把code缓存了起来并没有发生这种事情

wx.getUserInfo({

            success: function (e) {

                console.log(e);

                jrWxLogin().then((res) => {

                    console.log("wxLogin" + res.code);

                    jrFetchPost(api.userLogin, {

                        code: res.code,

                        iv: e.iv,

                        encryptedData: e.encryptedData,

                    }, true).then((res) => {


剩下来的就是业务代码,不贴了


回答关注问题邀请回答
收藏

3 个回答

  • 一颗🍎
    一颗🍎
    2018-09-11

    顺序应该就是  1、wx.login    2、wx.getUserInfo 。


    如果顺序反过来 ,会出现校验解密失败的问题,比较坑的是 不是每次都出错。


    2018-09-11
    有用 2
    回复 1
  • cy
    cy
    2020-08-10

    您好,这个问题您解决了吗,跟login和getUserInfo的顺序有关吗?

    2020-08-10
    有用
    回复
  • Jake
    Jake
    2018-06-13

    必须先有这个wx.login 在前面吧!先通过code 得到openid 就标识用户了

    至于wx.getUserInfo现在已经不支持了。

    请使用 <button open-type="getUserInfo"></button> 引导用户主动进行授权操作


    详细说明:https://developers.weixin.qq.com/miniprogram/dev/api/api-login.html

    2018-06-13
    有用
    回复 4
    • orz~
      orz~
      2018-06-14

      我的意思是这样的,如果已经拿到权限了的话是可以getUserInfo的,而且如果是按钮的话你也肯定是先getUserInfo才能login吧

      2018-06-14
      回复
    • 王万超
      王万超
      2019-05-23回复orz~

      不一定啊,login和getUserInfo如果同一层级,是可以并行执行的。如果想要先执行login,然后再执行getUserInfo,可以在login的success中执行。

      2019-05-23
      回复
    • 王万超
      王万超
      2019-05-23

      getUserInfo还支持啊,button那个只是授权操作,第一次授权后,每次进入可以通过scope判断,直接getUserInfo的

      2019-05-23
      回复
    • 吴冰哲
      吴冰哲
      2020-08-28
      wx.getUserInfo 目前是支持的
      2020-08-28
      回复
登录 后发表内容