码迷,mamicode.com
首页 > 微信 > 详细

小程序登录授权获取用户手机号码

时间:2020-05-28 13:26:07      阅读:1231      评论:0      收藏:0      [点我收藏+]

标签:失效   lse   ber   UNC   组件   on()   https   login   net   

根据官方文档,获取微信用户绑定的手机号,需要先调用wx.login接口。

因为需要用户主动触发才能发起获取手机号码接口,需要button组件的点击来触发。

使用方法:

需要将 button 组件的 open-type 的值设置为 getPhoneNumber,当用户点击并同意之后,可以通过 bindgetphonenumber 事件回调获取到微信服务器
返回的加密数据,然后再第三方服务端结合 session_key 以及 app_id 进行解密获取手机号。

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber">获取手机号码</button>

getPhoneNumber(e){
console.log(e.detail.errMsg);//
console.log(e.detail.iv);//加密算法的初始向量
console.log(e.detail.encryptedData);//
包括敏感数据在内的完整用户信息的加密数据
}
具体思路:
1、通过wx.login获取code,从而获取到用户的opendID , sessionKey。
2、通过 getPhoneNumber 获取的哦 encryptedData,iv.
3、通过参数【encryptedData】,【iv】,【sessionKey】请求后台解密获取用户手机号

代码如下:
//先获取sessionKey
requestlogin:function(){
var that = this;
wx.login({
success:(res)=>{
wx.request({
method:‘GET‘,
url:‘‘,//请求获取sessionKey的接口
data:{
code:res.code,
//...其他后台需要的参数
},
header:{‘content-type‘:‘application/json‘},
success:(res)=>{
console.log(res);
that.setData({
sessionKey:res.data.session_key
})
}
})
}
})
},
//用户点击获取手机号码按钮触发的getPhoneNumber事件
getPhoneNumber:function(e){
var that = this;
wx.checkSession({
success:function(){
console.log(e.detail.errMsg);
console.log(e.detail.iv);
console.log(e.detail.encryptedData);
var iv = e.detail.iv;
var ency = e.detail.encryptedData;
var sessionK = that.data.sessionKey;
if(e.detail.errMsg==‘getPhoneNumber:fail user deny‘){
that.setData({
modalstatus:true
})
}else{//同意授权
wx.request({
method:‘GET‘,
url:‘‘,
data:{
encrydata:ency,
ivdata:iv,
sessionkey:sessionk
},
header:{‘content-type‘:‘application/json‘},
success:(res)=>{
//解密成功
console.log(res);
let phone = res.data.phoneNumber;
},
fail:function(err){
//解密失败
}
})
}
},
fail:function(){
//session_key 已经失效,需要重新执行登录流程
that.requestlogin();
}
})
}

 

参考网址:https://blog.csdn.net/chen_pan_pan/article/details/80606658

小程序登录授权获取用户手机号码

标签:失效   lse   ber   UNC   组件   on()   https   login   net   

原文地址:https://www.cnblogs.com/sunnyeve/p/12979793.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!