5***@qq.com
5***@qq.com
  • 发布:2020-06-19 09:16
  • 更新:2020-06-19 09:16
  • 阅读:1899

小程序解密用户信息偶发41003

分类:uni-app

关键点在于uni.login所获取的code与获取用户信息(iv,encryptedData)先后问题,解决方案就是在获取用户信息之后再获取code一并提交服务器进行解密!

<button class="auth-item" open-type="getUserInfo" @getuserinfo="bindGetUserInfo">

             bindGetUserInfo(u) {  
                const _this = this;  
                if ('getUserInfo:ok' != u.detail.errMsg) {  
                    _this.er('获取用户信息失败');  
                    return false;  
                }  
                //login之后再获取用户信息,不然会解密偶发失败  
                uni.login({  
                    provider: 'weixin',  
                    complete(e) {  
                        if ('login:ok' != e.errMsg) {  
                            _this.er('获取用户登录状态失败');  
                            return false;  
                        }  
                        //获取用户信息  
                        uni.getUserInfo({  
                            complete(userInfo) {  
                                if ('getUserInfo:ok' != userInfo.errMsg) {  
                                    _this.er('获取用户信息失败');  
                                    return false;  
                                }  
                                //这里把数据提交给服务器解密  
                                _this.wxSendLogin({  
                                    iv: encodeURI(userInfo.iv),  
                                    code: encodeURI(e.code),  
                                    encryptedData: encodeURI(userInfo.encryptedData)  
                                });  
                            }  
                        })  
                    }  
                });  

            },
0 关注 分享

要回复文章请先登录注册