小程序的登录授权与退出功能(wx.getUserProfile)

一、授权登录:wx.getUserProfile

1、使用wx.getUserProfile实现登录

  login(){
    wx.getUserProfile({
      desc: '用于完善信息资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: res => {
        let user=res.userInfo
      console.log('内部的this',user)
       this.setData({
        nickName: user.nickName,
        touxiang: user.avatarUrl
       })
     },
     fail:res=>{
       console.log('失败',res)
     }
    })
  }

2、使得头像美观,头像和名字居中对齐

<button bindtap="login">授权登录</button>
<view class="user">
<image class="touxiang" src="{{touxiang}}"></image>
<view class="name">{{nickName}}</view>
</view>
.user{
  display: flex;
  flex-direction: column;
  align-items: center;
}
.touxiang{
  width: 200rpx;
  height: 200rpx;
  border-radius: 50%;
  margin-top: 30rpx;
  margin-bottom: 30rpx;
}

3、授权登录后使得授权按钮自动隐藏

3.1、第一种方式

<button bindtap="login" wx:if="{{NoLogin}}">授权登录</button>
<view class="user" wx:else>
<image class="touxiang" src="{{touxiang}}"></image>
<view class="name">{{nickName}}</view>
</view>
  /**
   * 页面的初始数据
   */
  data: {

    NoLogin:true,
    nickName:''
  },  
  login(){
    wx.getUserProfile({
      desc: '用于完善信息资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: res => {
        let user=res.userInfo
      console.log('内部的this',user)
       this.setData({
        nickName: user.nickName,
        touxiang: user.avatarUrl,
        NoLogin:false
       })
     },
     fail:res=>{
       console.log('失败',res)
     }
    })
  }

3.2、第二种方式(推荐:代码量少)

<button bindtap="login" wx:if="{{!userInfo}}">授权登录</button>
<view class="user" wx:else>
<image class="touxiang" src="{{userInfo.avatarUrl}}"></image>
<view class="name">{{userInfo.nickName}}</view>
</view>
 /**
   * 页面的初始数据
   */
  data: {
    userInfo:'',
    nickName:''
  },  
  login(){
    wx.getUserProfile({
      desc: '用于完善信息资料', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
      success: res => {
        let user=res.userInfo
      console.log('内部的this',user)
       this.setData({
        userInfo:user
       })
     },
     fail:res=>{
       console.log('失败',res)
     }
    })
  }

二、退出功能

使用上文的授权判断{{!userInfo}}语句,授权是把res.userInfo的信息交给user使得判断语句为假,而退出的让判断语句为真

所以代码可以写成:

  // 退出登录
  loginOut(){

    this.setData({
      userInfo:''
     })
  }
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小白学CS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值