首页

源码搜藏网

首页 > 微信小程序 > 微信小程序开发教程 >

看完你就会的微信小程序微信授权登录具体实现步骤

创建时间:2018-08-09 16:24  浏览

1.实现思路

自己写一个微信授权登录页面让用户实现点击的功能,也就是实现了通过 button 组件去触发 getUserInof 接口。在用户进入微

信小程序的时候,判断用户是否授权了,如果没有授权的话就显示下面“界面简介”的第一个图,让用户去执行授权的操作。如

果已经授权了,则直接跳过这个页面,进入首页。

2.界面简介

看完你就会的微信小程序微信授权登录具体实现步骤 
看完你就会的微信小程序微信授权登录具体实现步骤 

3.源码

login.wxml
  1. <view wx:if="{{canIUse}}">
  2.     <view class='header'>
  3.         <image src='/images/wx_login.png'></image>
  4.     </view>
  5.  
  6.     <view class='content'>
  7.         <view>申请获取以下权限</view>
  8.         <text>获得你的公开信息(昵称,头像等)</text>
  9.     </view>
  10.  
  11.     <button class='bottom' type='primary' open-type="getUserInfo" lang="zh_CN" bindgetuserinfo="bindGetUserInfo">
  12.         授权登录
  13.     </button>
  14. </view>
  15.  
  16. <view wx:else>请升级微信版本</view>
复制代码

login.wcss
  1. .header {
  2.     margin: 90rpx 0 90rpx 50rpx;
  3.     border-bottom: 1px solid #ccc;
  4.     text-align: center;
  5.     width: 650rpx;
  6.     height: 300rpx;
  7.     line-height: 450rpx;
  8. }
  9.  
  10. .header image {
  11.     width: 200rpx;
  12.     height: 200rpx;
  13. }
  14.  
  15. .content {
  16.     margin-left: 50rpx;
  17.     margin-bottom: 90rpx;
  18. }
  19.  
  20. .content text {
  21.     display: block;
  22.     color: #9d9d9d;
  23.     margin-top: 40rpx;
  24. }
  25.  
  26. .bottom {
  27.     border-radius: 80rpx;
  28.     margin: 70rpx 50rpx;
  29.     font-size: 35rpx;
  30. }
复制代码

login.json
  1. {
  2.     "navigationBarTitleText": "授权登录"
  3. }
复制代码

login.js

代码的 wx.request 是我项目与后台的一些交互,可直接删除掉。

需要修改的地方:

记得自己补上 wx.switchTab 接口中的 url 属性,这是授权成功后跳转的页面路径,由于我的首页是 tarBar 页面,所以这里用 

wx.switchTab ,如果不是 tarBar 页面的话,可以用 wx.navigateTo 和 wx.redirecTo 去跳转页面。 

  1. Page({
  2.     data: {
  3.         //判断小程序的API,回调,参数,组件等是否在当前版本可用。
  4.         canIUse: wx.canIUse('button.open-type.getUserInfo')
  5.     },
  6.     onLoad: function () {
  7.         var that = this;
  8.         // 查看是否授权
  9.         wx.getSetting({
  10.             success: function (res) {
  11.                 if (res.authSetting['scope.userInfo']) {
  12.                     wx.getUserInfo({
  13.                         success: function (res) {
  14.                             //从数据库获取用户信息
  15.                             that.queryUsreInfo();
  16.                             //用户已经授权过
  17.                             wx.switchTab({
  18.                                 url: ''
  19.                             })
  20.                         }
  21.                     });
  22.                 }
  23.             }
  24.         })
  25.     },
  26.     bindGetUserInfo: function (e) {
  27.         if (e.detail.userInfo) {
  28.             //用户按了允许授权按钮
  29.             var that = this;
  30.             //插入登录的用户的相关信息到数据库
  31.             wx.request({
  32.                 url: getApp().globalData.urlPath + 'hstc_interface/insert_user',
  33.                 data: {
  34.                     openid: getApp().globalData.openid,
  35.                     nickName: e.detail.userInfo.nickName,
  36.                     avatarUrl: e.detail.userInfo.avatarUrl,
  37.                     province:e.detail.userInfo.province,
  38.                     city: e.detail.userInfo.city
  39.                 },
  40.                 header: {
  41.                     'content-type': 'application/json'
  42.                 },
  43.                 success: function (res) {
  44.                     //从数据库获取用户信息
  45.                     that.queryUsreInfo();
  46.                     console.log("插入小程序登录用户信息成功!");
  47.                 }
  48.             });
  49.             //授权成功后,跳转进入小程序首页
  50.             wx.switchTab({
  51.                 url: ''  
  52.             })
  53.         } else {
  54.             //用户按了拒绝按钮
  55.             wx.showModal({
  56.                 title:'警告',
  57.                 content:'您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
  58.                 showCancel:false,
  59.                 confirmText:'返回授权',
  60.                 success:function(res){
  61.                     if (res.confirm) {
  62.                         console.log('用户点击了“返回授权”')
  63.                     } 
  64.                 }
  65.             })
  66.         }
  67.     },
  68.     //获取用户信息接口
  69.     queryUsreInfo: function () {
  70.         wx.request({
  71.             url: getApp().globalData.urlPath + 'hstc_interface/queryByOpenid',
  72.             data: {
  73.                 openid: getApp().globalData.openid
  74.             },
  75.             header: {
  76.                 'content-type': 'application/json'
  77.             },
  78.             success: function (res) {
  79.                 console.log(res.data);
  80.                 getApp().globalData.userInfo = res.data;
  81.             }
  82.         });
  83.     },
  84.     
  85. })

上一篇:微信小程序开发使用企业支付接口来实现发红包示例教程
下一篇:微信小程序实现旋转木马/缩放轮播图效果详解

相关内容