用户信息

wx.getUserInfo(Object)

获取用户信息,需要首先调用wx.login接口,Object参数属性如下:

属性 类型 默认值 必填 说明
withCredentials boolean   是否带上登录态信息。当 withCredentials 为 true 时,要求此前有调用过 wx.login 且登录态尚未过期,此时返回的数据会包含 encryptedData, iv 等敏感信息;当 withCredentials 为 false 时,不要求有登录态,返回的数据不包含 encryptedData, iv 等敏感信息。
lang string en 显示用户信息的语言
success function   接口调用成功的回调函数
fail function   接口调用失败的回调函数
complete function   接口调用结束的回调函数(调用成功、失败都会执行)

object.lang 的合法值

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

object.success 回调函数

属性 类型 说明
userInfo UserInfo 用户信息对象,不包含 openid 等敏感信息
rawData string 不包括敏感信息的原始数据字符串,用于计算签名
signature string 使用 sha1( rawData + sessionkey ) 得到字符串,用于校验用户信息,详见 用户数据的签名验证和加解密
encryptedData string 包括敏感数据在内的完整用户信息的加密数据,详见 用户数据的签名验证和加解密
iv string 加密算法的初始向量,详见 用户数据的签名验证和加解密

示例代码如下:

wx.getUserInfo({success:function(res){const userInfo = res.userInfoconst nickName = res.nickNameconst avatarUrl = res.avatarUrlconst gender = userInfo.genderconst province = userInfo.provinceconst city = userInfo.cityconst country = userInfo.country}
})

对encrypteData解密后可以得到完整的用户信息,解密算法解压后的json结构如下:

{"openId":"OPENID","nickName":"NICKNAME","gender":GENDER,"city":"CITY","province":"PROVINCE","country":"COUNTRY","avataUrl":"AVATARURL","unionId":"UNIONID","watermark":{"appid":"APPID","timestamp":TIMESTAMP}
}

其中unionId用于区分不同应用下的用户身份,它在同一微信开放平台账号下的移动应用、网站应用和公共账号(包括小程序)是全局唯一的,而openId只在同一应用体系中是唯一的,即在不同公众号下的openId可能重复,但unionId不会重复。即同一用户,对于应该微信开放平台下的不同应用,登陆后unionId是相同的,openId是不同的。获取unionId首先需要将小程序介入微信开放平台,开发者可以登陆威胁你开放平台进行开发者资质认证。

本例获取用户信息实例代码演示如下:

<!--如果只是展示用户头像昵称,可以使用<open-data/>组件-->
<open-data type ="userAvatarUrl"></open-data>
<open-data type = "userNickName"></open-data>
<!--需要使用button来授权登陆-->
<button
wx:if="{{canIUse}}"
open-type='getUserInfo'
bindgetuserinfo='bindGetUserInfo'>授权登陆</button>
<view wx:else>请升级微信版本</view>
Page({data:{canIUse:wx.canIUse('button.open-type.getUserInfo')},onLoad(){//查看是否授权wx.getSetting({success(res){if(res.authSetting['scope.userInfo']){//已授权,可以直接调用getUserInfo获取头像昵称wx.getUserInfo({success(res){console.log(res.userInfo)}})}}})},bindGetUserInfo(e){console.log(e.detail.userInfo)}
})

执行结构如下:

微信小程序学习之路——API用户信息相关推荐

  1. 微信小程序学习9:获取用户信息进行登录操作 wx.getUserProfile

    微信小程序学习9:获取用户信息进行登录操作wx.getUserProfile 2021年4月份左右微信对获取用户的API进行了更改.使用wx.getUserInfo只能获取用户的匿名信息. 要获取用户 ...

  2. 微信小程序学习之路——API媒体

    媒体 图片 wx.chooseImage(Object) 从本地相册选择图片或者使用相机拍照,拍照时产生的临时路径小程序本次启动期间都可以正常使用,如果需要持久保存,就要主动调用wx.saveFile ...

  3. 微信小程序学习之路——API获取二维码

    获取二维码 通过后台接口可以获取小程序任意页面的二维码,扫描该二维码可以直接进入小程序对应的页面. 可以使用开发工具 1.02.1803130 及以后版本通过二维码编译功能调试所获得的二维码 为满足不 ...

  4. 微信小程序学习之路(一)

    微信小程序学习之路(一) 1.前言 2.准备工作 (1).IDE的选择 (2).微信小程序的文件说明 (3)开发者用户注册 3.编写 (1).新建项目 (2).代码的编写 3.代码的发布以及审核 1. ...

  5. 微信小程序学习总结(六) --- API

    微信小程序学习总结(六) - API API 规则: 1 . 都是以wx.开头 2. 以wx.on开头的是监听某个事件的API接口,接受一个回调函数作为参数 3. api大多是异步的函数,接受Obje ...

  6. 微信小程序 - 登录获取openid和用户信息(适配getUserProfile)

    GitHub Demo 地址: jh-weapp-demo 实现一些常用效果.封装通用组件和工具类 小程序码 微信小程序中如果需要使用微信的用户信息建立自己的用户体系,需拿到唯一标识openid,然后 ...

  7. 微信小程序学习之路——表单组件(一)

    radio组件 1.radio-group 在小程序中<radio/>不能单独使用,同一组<radio/>需要包含在一个<radio group/>中,这样才能形成 ...

  8. 微信小程序如何实现同时授权用户信息和手机号码不重复授权问题

    相信很多小伙伴都有遇到了在点击一个按钮时想要实现同时获取到用户信息及手机号码并且授权过后不重复授权的操作,分享一下我的方法~ <!--index.wxml--> <!--showPo ...

  9. 微信小程序一个按钮同时获取用户信息和手机号码

    <view class="login" bindtap='getuserInfo'><button open-type="getPhoneNumber& ...

  10. 微信小程序app.js中获取用户信息以及为golbalData赋值的坑

    代码如下: //app.js App({ globalData: { urlPath: "http://www.baidu.com//",    //此处貌似必须填写搜索引擎的网址 ...

最新文章

  1. antlr-2.7.6.jar的作用
  2. Python源码学习:多线程实现机制
  3. Linux sar性能分析
  4. Android典型界面设计(3)——访网易新闻实现双导航tab切换
  5. 推荐一款非常强大的扒站工具
  6. 动态规划几种状态剪裁比较
  7. 【Flink】Flink RecordWriterOutput pushToRecordWriter InterruptedException
  8. 线段树区间合并--询问某段区间内最长连续上升子序列即最长上升子串
  9. Spark的操作列表
  10. Mixed Content: The page at ‘https://XXX’ was loaded over HTTPS, but requested an insecure...........
  11. oracle常用操作命令总结
  12. 织梦采集侠教程设置免费版本
  13. essay--网页播放器代码大全
  14. mc服务器物品给予,[管理|功能]GiveItem —— 给予物品 | 更好的Give|支持NBT|保存物品[1.12.2|1.16.X]...
  15. 联想小新pro16和联想小新pro14 2022款哪个好
  16. Android基础第四篇
  17. 模拟登陆新版正方教务管理系统【可以获取学生基本/课表信息】
  18. mysql select limit 1_select * 为什么不好? limit 1 为什么好? --mysql SQL语句优化
  19. Dell 服务器 无线网卡,家庭无线互联方案:DELL 戴尔 发布 WiGig无线坞
  20. 智驾厂商未来的3个新增长点:机器人、自动驾驶保险、飞行汽车(eVTOL)

热门文章

  1. 虾皮「光速大裁员」:7分钟大会后,软件瞬间查无此人
  2. 木讷的程序员需要知道的事情 (六)
  3. 西安交通大学电子图书站点被黑
  4. 【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
  5. 《洛克菲勒留给儿子的38封信》
  6. bmc linux 默认密码_系统下重置BMC密码方法
  7. 微信小程序检测版本是否有更新
  8. 开发板与PC直连还是交叉,关于直连网线交叉网线做法
  9. Loadrunner事务与子事务函数简介
  10. m计算机代表什么意思,计算器上的m+是什么意思