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

Posted L 00

tags:

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

微信小程序

一.实现微信小程序授权登录
微信小程序每次获得用户的信息时需要授权登录,下面的代码可以实现以下功能

Page(
  data: 
    nickName:''
  ,
  dianji()
   
    console.log("点击了按按钮")
    wx.getUserProfile(
       desc: '获取用户的信息',//获取用户的信息
       success:res => //用户成功授权
        console.log("成功",res)
        this.setData(
          nickName:res.userInfo.nickName,
          touxian:res.userInfo.avatarUrl
        )
    ,
    fail:res=>
      console.log("失败",res)
    
  )
)

结果:

使得登录后可以隐藏点击按钮:
在js文件里面增加以下代码

Page(
  data: 
   userInfo:""
  ,
  dianji()
   
    console.log("点击了按按钮")
    wx.getUserProfile(
       desc: '获取用户的信息',
       success:res => 
         let user=res.userInfo
        console.log("成功",res)
        this.setData(
          userInfo:user   
        )
    ,
    fail:res=>
      console.log("失败",res)
    
  )
)

在wxml里面的代码:

<button wx:if="!userInfo"   bindtap="dianji" >点击</button>
<view wx:else class="root">
     <image class="touxian"  src="userInfo.avatarUrl"></image>
     <text>userInfo.nickName</text>
</view>

理解:
设定条件,由于一开始userInfo为空,所以执行button命令,点击授权之后,userInfo获得了数据所以执行里面的内容。
退出点击按钮的操作:
在之前的代码下面增加一段,同时也要在wxml里面增加相应的操作
js:

 tui()
   this.setData(
    userInfo:""
   )
 

wxml:

  <button bindtap="tui" >退出登录</button>

二.对登录的信息进行缓存
用户在使用微信小程序时,可能需要对用户以前提交的信息进行保存,方便用户的操作,所以对用户登录的信息进行缓存十分重要。
主要是使用了微信小程序里面的这一端代码:
wx.setStorageSync(‘参数1’, 参数2)
上面的参数1其实就是相对与一个用来保存参数2里面内容的地方,可以在微信开发者里面看到缓存的内容:

同时得到保存地方的内容可以用以下代码:
wx.getStorageSync(‘参数1’)

具体实现:

Page(
  data: 
   userInfo:""
  ,
  onLoad()
    let user=wx.getStorageSync('user1')
    console.log("1",user)
    this.setData(
      userInfo:user
    )
  ,
  dianji()
    console.log("点击了按按钮")
    wx.getUserProfile(
       desc: '获取用户的信息',
       success:res => 
         let user=res.userInfo
         wx.setStorageSync('user1', user)
        console.log("成功",res)
        this.setData(
          userInfo:user   
        )
    ,
    fail:res=>
      console.log("失败",res)
    
  ),
 tui()
   this.setData(
    userInfo:""
   )
   wx.setStorageSync('user1', null)
 
)

结果就是每次进入小程序可以保存用户的相关信息,不用总是点击登录输入相关的信息

完整微信小程序授权登录页面教程

完整微信小程序授权登录页面教程

1、前言

微信官方对getUserInfo接口做了修改,授权窗口无法直接弹出,而取而代之是需要创建一个button,将其open-type属性绑定getUseInfo方法。在参考了网路上各种方案之后,实现了用户在授权之后跳转到小程序首页的授权登录页面。

2、实现效果

技术图片
技术图片

3、实现思路

在进入小程序时先对授权情况进行判断,若已经过授权则直接跳转到首页,若还未经过授权则进入授权页面,点击页面的授权按钮会弹出选择框,选择“拒绝”则不进行跳转,选择“允许“则进行授权并跳转到小程序首页。

4、实现代码

<!--login.wxml-->
<view wx:if="{{canIUse}}">
  <view class=‘header‘>
    <image src=‘/assets/tasks_icon/check.png‘></image>
  </view>
  <view class=‘content‘>
    <view>申请获取以下权限</view>
    <text>获得你的公开信息(昵称,头像等)</text>
  </view>
  <button class=‘bottom‘ type=‘primary‘ open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
    授权登录
  </button>
</view>
<view wx:else>请升级微信版本</view>
//login.wxss
.header {
  margin: 90rpx 0 90rpx 50rpx;
  border-bottom: 1px solid #ccc;
  text-align: center;
  width: 650rpx;
  height: 300rpx;
}

.header image {
  width: 200rpx;
  height: 200rpx;
}

.content {
  margin-left: 50rpx;
  margin-bottom: 90rpx;
}

.content text {
  display: block;
  color: #9d9d9d;
  margin-top: 40rpx;
}

.bottom {
  border-radius: 80rpx;
  margin: 70rpx 50rpx;
  font-size: 35rpx;
}
//login.js
Page({
  data: {
    //判断小程序的API,回调,参数,组件等是否在当前版本可用。
    canIUse: wx.canIUse(‘button.open-type.getUserInfo‘)
  },

  onLoad: function () {
    var that = this;
    // 查看是否授权
    wx.getSetting({
      success: function (res) {
        if (res.authSetting[‘scope.userInfo‘]) {
          wx.getUserInfo({
            success: function (res) {
              // 用户已经授权过,调用微信的 wx.login 接口,从而获取code,再直接跳转到主页
              wx.login({
                success: res => {
                  // 获取到用户的 code 之后:res.code
                  console.log("用户的code:" + res.code);
                }
              });
              wx.switchTab({
                url: ‘/pages/home/home‘,    //这里填入要跳转目的页面的url
                success: (result) => {
                  console.log("跳转到首页");
                },
                fail: () => {}
              });
            }
          });
        } else {
          // 用户没有授权,显示授权页面,这里不进行操作
        }
      }
    });
  },

  bindGetUserInfo: function (e) {
    if (e.detail.userInfo) {
      //用户按了允许授权按钮
      var that = this;
      // 获取到用户的信息了,打印到控制台上看下
      console.log("用户的信息如下:");
      console.log(e.detail.userInfo);
      //授权成功后,跳转页面
      wx.switchTab({
        url: ‘/pages/home/home‘,    //这里填入要跳转目的页面的url
        success: (result) => {
          console.log("跳转到首页");
        },
        fail: () => {}
      });
    } else {
      //用户按了拒绝按钮
      wx.showModal({
        title: ‘警告‘,
        content: ‘您拒绝了授权,将无法进入小程序,请授权之后再进入!‘,
        showCancel: false,
        confirmText: ‘返回‘,
        success: function (res) {
          // 用户没有授权成功,不需要改变 isHide 的值
          if (res.confirm) {
            console.log(‘用户点击了“返回”‘);
          }
        }
      });
    }
  }
})

最后在app.json文件中将login设置为第一个页面即可。

//app.json
{
	"pages": [
		"pages/login/login",
		"pages/home/home"
	]
}

以上是关于微信小程序入门之授权登录的主要内容,如果未能解决你的问题,请参考以下文章

微信小程序怎么授权登录

微信小程序用户授权登录

如何注销微信小程序的授权?

微信小程序的登录和授权注意事项

微信小程序开发工具是否有授权的

微信小程序用户授权