微信小程序-用户信息及登录

Posted 追到梦的魔术师

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了微信小程序-用户信息及登录相关的知识,希望对你有一定的参考价值。

一、获取用户信息的方法

wx.getUserProfile(Object object)

获取用户信息。页面产生点击事件(例如 button 上 bindtap 的回调中)后才可调用,每次请求都会弹出授权窗口,用户同意后返回 userInfo。该接口用于替换 wx.getUserInfo。

实现代码:

.wxml文件

<!--pages/loginPage/loginPage.wxml-->
<view>
  <button bindtap="getUserInfo![请添加图片描述](https://img-blog.csdnimg.cn/6267d90ccd074f0bbaeec9bfff2ad28b.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBA6L-95Yiw5qKm55qE6a2U5pyv5biI,size_11,color_FFFFFF,t_70,g_se,x_16)
"> 获取用户信息 </button>
</view>

.js文件自定义方法

getUserProfile(res){
    wx.getUserProfile({
      desc: '展示用户信息', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: (res) => {
        console.log(res)
        this.setData({
          userInfo: res.userInfo,
          hasUserInfo: true
        })
      }
    })
  },

点击出发方法后,会弹框提示用户授权:

注意:每次调用方法都会弹出弹框向用户要权限
点击允许后,便可以拿到用户的数据,类型为UserInfo,属性说明:

属性说明
nickName用户昵称
avatarUrl头像url
gender用户性别; 0未知、1男、2女

相关文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/UserInfo.html

二、登录相关方法

方法一、wx.login(Object object)

调用接口获取登录凭证(code)。通过凭证进而换取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等。用户数据的加解密通讯需要依赖会话密钥完成。

wx.login({
  success (res) {
    if (res.code) {
      //发起网络请求
      wx.request({
        url: 'https://example.com/onLogin',
        data: {
          code: res.code
        }
      })
    } else {
      console.log('登录失败!' + res.errMsg)
    }
  }
})

方法二、wx.checkSession(Object object)

检查登录态是否过期。 通过 wx.login 接口获得的用户登录态拥有一定的时效性。用户越久未使用小程序,用户登录态越有可能失效。反之如果用户一直在使用小程序,则用户登录态一直保持有效。具体时效逻辑由微信维护,对开发者透明。开发者只需要调用 wx.checkSession 接口检测当前用户登录态是否有效。

登录态过期后开发者可以再调用 wx.login 获取新的用户登录态。调用成功说明当前 session_key 未过期,调用失败说明 session_key 已过期。

登陆流程:

三、开放能力 open-data

用于展示微信开放的数据。

<open-data type="userAvatarUrl"></open-data>    
<open-data type="userNickName"></open-data>

利用可以直接拿到用户的昵称和头像之类的信息

四、最佳实践

开发者如需获取用户身份标识符只需要调用wx.login接口即可。

开发者若需要在界面中展示用户的头像昵称信息,可以通过组件进行渲染,该组件无需用户确认,可以在界面中直接展示。

在部分场景(如社交类小程序)中,开发者需要在获取用户的头像昵称信息,可调用wx.getUserProfile接口,开发者每次通过该接口均需用户确认,请开发者妥善处理调用接口的时机,避免过度弹出弹窗骚扰用户。

以上是关于微信小程序-用户信息及登录的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序-用户信息及登录

微信小程序获取用户信息及手机号 进行微信登录

微信小程序怎么拒绝快速登录

微信小程序的登录流程

微信小程序入门之授权登录

微信小程序-登陆支付模板消息