微信小程序授权登录

目录

 

 
自定义授权页面

 

点击授权登录后出现微信自带的授权登录弹窗

 

<!--index.wxml-->

<!-- 授权界面 -->
< cover-view class= 'auth_wrap' wx:if= "{{hasUserInfo && canIUse}}">
< cover-view class= 'con'>
< cover-image class= 'logo' mode= "widthFix" src= '../../assets/mrys_logo.png'>
</ cover-image >
< cover-view class= 'txt'>XXXXXX小程序申请一下权限: </ cover-view >
< cover-view class= 'txt'>获取你的公开信息(头像和昵称等) </ cover-view >
< button class= 'btn' type= 'primary' open-type= "getUserInfo" bindgetuserinfo= "getUserInfo"> 授权登录 </ button >
</ cover-view >
</ cover-view >

 

//app.js
App({
onLaunch: function () {
},
globalData: {
'hasUserInfo': false,
'code': null,
'userInfo': null
}
})

 

//index.js
const app = getApp();
Page({
data: {
userInfo: {},
hasUserInfo: false, //未授权不显示
canIUse: wx.canIUse( 'button.open-type.getUserInfo') //判断小程序的API,回调,参数,组件等是否在当前版本可用。
},
onLoad: function () {
var self= this;
// 获取用户信息
wx.getSetting({
success: res => {
if (res.authSetting[ 'scope.userInfo']) {
wx.getUserInfo({
success: res => {
// 可以将 res 发送给后台解码出 unionId
app.globalData.userInfo = res.userInfo
// console.log(app.globalData.userInfo);

// 登录
wx.login({
success: res => {
// 发送 res.code 到后台换取 openId, sessionKey, unionId
getApp().globalData.code = res.code;
console.log(getApp().globalData.code);
wx.request({
url: 'https:xxxxxxxxxxxxxxxxxxxxxx',
data: {
'code': getApp().globalData.code,
},
method: 'POST',
success: function (res) {
console.log(res);
getApp().globalData.uid = res.data.data.uid;
console.log( 'uid====',getApp().globalData.uid);
}
})
 
}
})
}
})
} else {
// 用户没有授权
// 改变 hasUserInfo 的值,显示授权页面
self.setData({
hasUserInfo: true
});
}
}
})
},
getUserInfo: function (e) {
if (e.detail.userInfo) {
console.log(e.detail.userInfo);
//用户按了允许授权按钮
var self = this;
//授权成功后,通过改变 hasUserInfo 的值,让实现页面显示出来,把授权页面隐藏起来
self.setData({
userInfo: e.detail.userInfo,
hasUserInfo: false
});
 
} else {
//用户按了拒绝按钮
wx.showModal({
title: '警告',
content: '您点击了拒绝授权,将无法进入小程序,请授权之后再进入!!!',
showCancel: false,
confirmText: '返回授权',
success: function (res) {
// 用户没有授权成功,不需要改变 isHide 的值
if (res.confirm) {
console.log( '用户点击了“返回授权”');
}
}
});
}
},

转载于:https://www.cnblogs.com/lingXie/p/10518375.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值