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.用户信息查询
根据session 中 存入的 open_id 取用户数据