随笔-微信小程序-获取用户信息

本文介绍了在微信小程序开发中遇到的用户信息获取问题。由于wx.getSetting无法正确返回用户授权状态,导致无法获取用户信息。解决方案是使用wx.getUserProfile接口,该接口在页面上触发或直接调用时会弹出授权窗口,以获取用户加密信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

2021.04.06
最近在开发小程序,今天突然发现不能登录了,排查了一会发现:
    wx.getSetting的返回值中并没有返回

"scope.userInfo": true

这样就拿不到用户返回的信息了并且也没看到用户授权弹窗;正常是使用getSetting弹出用户信息授权,然后就可以通过getUserInfo的接口获取加密的用户信息
然后去查了文档:


发现:因为现在getUserInfo可能是需要匿名,而getSetting的userInfo授权对应的又是getSetting所以就造成了登录失败,因为拿不到true的返回值

所以现在必须使用getUSerProfile才能获取用户信息,而且只要在页面上写上点击事件就可以触发,你也可以在方法中直接调用,会直接弹出微信的授权窗口:

<button bindtap="test"> 获取头像昵称 </button>

test() {
  // 获取用户信息
  wx.getUserProfile({
   lang:'zh_CN',
   desc: '用于获取用户信息',
   success:(res)=>{
     console.log('-------------')
     console.log(res)
     console.log('-------------')
   },
   fail: (res)=>{
     console.log(res)
   }
  })
}

 

wx.getUserProfile(Object object) - 2021.04.07(只是当前的,之后修改的话待定)

参数

Object object

属性类型默认值必填说明
langstringen显示用户信息的语言
descstring 声明获取用户个人信息后的用途,不超过30个字符
successfunction 接口调用成功的回调函数
failfunction 接口调用失败的回调函数
completefunction 接口调用结束的回调函数(调用成功、失败都会执行)

object.lang 的合法值

说明最低版本
en英文 
zh_CN简体中文 
zh_TW繁体中文 

object.success 回调函数

参数

Object res

属性类型说明最低版本
userInfoUserInfo用户信息对象2.10.4
rawDatastring不包括敏感信息的原始数据字符串,用于计算签名2.16.0
signaturestring使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密2.16.0
encryptedDatastring包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密2.16.0
ivstring加密算法的初始向量,详见 用户数据的签名验证和加解密2.16.0
cloudIDstring敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据2.16.0
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值