学习微信小程序第二天-登录态学习

UnionID机制:
假设开发者有多个移动应用、网站应用、公众号(包括小程序),通过使用UnionID来进去区分用户的唯一性。
总的来说,同一个用户,对同一个微信开放平台下的不同应用,UnionID是相同的。
这里是否可以理解为数据库中用户表中用户的ID是唯一的,我们从表中搜索信息的时候凭借UnionID来进行遍历,从何搜索到相应的信息,而不需要每次都进行填写。
获取途径:
1.调用接口wx.getUserinfo,从解密数据中获取UnionID,但是本接口需要用户授权,即我们平时登录小程序时的弹出界面:是否授权给XX应用等这类界面,就是进行获取UnionID的授权界面了。
wx.getUserInfo(Object object)函数参数如下:
object:

属性类型默认值必填说明
withCredentialsboolean是否戴上登录态信息。当withCredentials为true时,要求此前有调用过wx.login且登录态尚未过期,此时返回的数据会包含encyptedData,iv等敏感信息;当withCredentials为false时,不要求有登录态,范蝴蝶数据不包括encryptedData,iv等敏感信息
langstringen显示用户信息的语言
successfunction接口调用成功的回调函数
failfunction接口调用失败的回调函数
completefunction接口调用结束的回调函数(回调成功、失败都会执行)

object.success的回调函数
参数Object res

属性类型说明
userinfoUserInfo用户信息对象,不包括openid等敏感信息
rawDatastring不包括敏感信息的原始数据字符串,用于计算签名
signaturestring使用sha1(rawData+sessionkey)得到字符串,用于校验用户信息,详见用户数据的签名验证和加解密
encryptedDatastring包括敏感数据在内的完整用户信息的加密数据,详见用户数据的签名验证和加解密

object.lang的合法值

说明
en英文
zh_CN简体中文
zh_TW繁体中文

在看完上面这些内容后,看到微信小程序开发文档中有写:接口调整说明

看了以后心情复杂,这里想配一张图
在这里插入图片描述

当然wx.getUserInfo接口都看到这里了,还能不看完么。。,下面是手册给的示例代码:

// 必须是在用户已经授权的情况下调用
wx.getUserInfo({
  success(res) {
    const userInfo = res.userInfo
    const nickName = userInfo.nickName
    const avatarUrl = userInfo.avatarUrl
    const gender = userInfo.gender // 性别 0:未知、1:男、2:女
    const province = userInfo.province
    const city = userInfo.city
    const country = userInfo.country
  }
})

在用户已经授权的情况下进行数值的获取。
encryptedData解密后为以下json结构,详见加密数据解密算法

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

示例代码:

<!-- 如果只是展示用户头像昵称,可以使用 <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)
  }
})

UserInfo(用户信息)
属性:

属性类型作用
nickNamestring用户昵称
avatarUrlstring用户头像图片的URL。URL最后一个数值代表正方形头像大小(有0,46,64,96,132数值可选,0代表640640的正方形头像,46表示4646的正方形头像,剩余数值以此类推,默认132),用户没有头像时该项为空。渃用户更换头像,原有头像URL将失效。
gendernumber用户性别
countrystring用户所在国家
provincestring用户所在省份
citystring用户所在城市
languagestring显示country、province、city所用的语言

language的合法值:

说明
en英文
zh_CN简体中文
zh_TW繁体中文
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值