小程序登陆授权的两种方式
目录
小程序登陆授权的两种方式
1、小程序授权登录流程
调用 wx.login 获取 code。
使用 wx.getSetting 获取用户的授权情况
如果用户已经授权,直接调用 API wx.getUserInfo 获取用户最新的信息;
用户未授权,在界面中显示一个按钮提示用户登入,当用户点击并授权后就获取到用户的最新信息。
将获取到的用户数据连同wx.login返回的code一同传给后端
2、手机号登陆授权
1.页面使用
<button class="login-btn" open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">授权登陆</button>
2.js中
getPhoneNumber(e) {
let _this = this;
//console.log(e.detail)
if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {
wx.showModal({
title: '提示',
showCancel: false,
content: '未授权不能操作',
success: function (res) {
}
})
}else{
// 执行微信登录
wx.login({
success: function (res) {
console.log(res)
// 发送用户信息
App._post_form('user/login'
, {
code: res.code,
user_info: e.detail.rawData,
encrypted_data: e.detail.encryptedData,
iv: e.detail.iv,
signature: e.detail.signature,
pid: _this.data.pid
}
, function (result) {
// 记录token user_id
wx.setStorageSync('token', result.data.token);
wx.setStorageSync('user_id', result.data.user_id);
// 跳转回原页面
_this.navigateBack();
}
, false
, function () {
wx.hideLoading();
});
}
});
}
}
3.后台根据code获取session_key和openid_id ,将open_id存入session
4.根据session_key,app_id,encrypted_data,iv解密手机号
5.token 生成
根据open_id+盐生成token返回给前端,前端每次请求携带
6.用户信息查询