title: Taro.getUserInfo(option)
sidebar_label: getUserInfo
获取用户信息。
接口调整说明 在用户未授权过的情况下调用此接口,将不再出现授权弹窗,会直接进入 fail 回调(详见《公告》)。在用户已授权的情况下调用此接口,可成功获取用户信息。
支持情况:
.default})
类型
(option?: Option) => Promise<SuccessCallbackResult>
参数
| 参数 | 类型 |
|---|---|
| option | Option |
Option
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| complete | (res: TaroGeneral.CallbackResult) => void |
否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
| fail | (res: TaroGeneral.CallbackResult) => void |
否 | 接口调用失败的回调函数 |
| lang | keyof Language |
否 | 显示用户信息的语言 |
| success | (result: SuccessCallbackResult) => void |
否 | 接口调用成功的回调函数 |
| withCredentials | boolean |
否 | 是否带上登录态信息。当 withCredentials 为 true 时,要求此前有调用过 Taro.login 且登录态尚未过期,此时返回的数据会包含 encryptedData, iv 等敏感信息;当 withCredentials 为 false 时,不要求有登录态,返回的数据不包含 encryptedData, iv 等敏感信息。 |
SuccessCallbackResult
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| cloudID | string |
否 | 敏感数据对应的云 ID,开通云开发的小程序才会返回,可通过云调用直接获取开放数据,详细见云调用直接获取开放数据 |
| encryptedData | string |
是 | 包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密 |
| iv | string |
是 | 加密算法的初始向量,详见 用户数据的签名验证和加解密 |
| rawData | string |
是 | 不包括敏感信息的原始数据字符串,用于计算签名 |
| signature | string |
是 | 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密 |
| userInfo | UserInfo |
是 | 用户信息对象,不包含 openid 等敏感信息 |
| errMsg | string |
是 | 调用结果 |
示例代码
// 必须是在用户已经授权的情况下调用Taro.getUserInfo({success: function(res) {var userInfo = res.userInfovar nickName = userInfo.nickNamevar avatarUrl = userInfo.avatarUrlvar gender = userInfo.gender //性别 0:未知、1:男、2:女var province = userInfo.provincevar city = userInfo.cityvar country = userInfo.country}})
敏感数据有两种获取方式,一是使用 加密数据解密算法 。 获取得到的开放数据为以下 json 结构:
{"openId": "OPENID","nickName": "NICKNAME","gender": GENDER,"city": "CITY","province": "PROVINCE","country": "COUNTRY","avatarUrl": "AVATARURL","unionId": "UNIONID","watermark": {"appid":"APPID","timestamp": TIMESTAMP}}
