微信小程序获取手机号授权用户登录功能


Posted in Javascript onNovember 09, 2017

小程序中有很多地方都会用到注册用户信息的地方,用户需要填写手机号等,有了这个组件可以快速获取微信绑定手机号码,无须用户填写。

1.getPhoneNumber这个组件通过button来实现(别的标签无效)。将button中的open-type=“getPhoneNumber”,并且绑定bindgetphonenumber事件获取回调。

<span style="font-size:14px;"><button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button></span>

2.在使用这个组件之前必须先调用login接口,如果没有调用login点击button时会提示先调用login。

App({  
  onLaunch: function () {  
    wx.login({  
      success: function (res) {  
        if (res.code) {  
          //发起网络请求  
          console.log(res.code)  
        } else {  
          console.log('获取用户登录态失败!' + res.errMsg)  
        }  
      }  
    });  
  }  
})

3.通过bindgetphonenumber绑定的事件来获取回调。回调的参数有三个,

errMsg:用户点击取消或授权的信息回调。

iv:加密算法的初始向量(如果用户没有同意授权则为undefined)。

encryptedData: 用户信息的加密数据(如果用户没有同意授权同样返回undefined)

微信小程序获取手机号授权用户登录功能

getPhoneNumber: function(e) {   
  console.log(e.detail.errMsg)   
  console.log(e.detail.iv)   
  console.log(e.detail.encryptedData)   
  if (e.detail.errMsg == 'getPhoneNumber:fail user deny'){  
   wx.showModal({  
     title: '提示',  
     showCancel: false,  
     content: '未授权',  
     success: function (res) { }  
   })  
  } else {  
   wx.showModal({  
     title: '提示',  
     showCancel: false,  
     content: '同意授权',  
     success: function (res) { }  
   })  
  }  
 }

4.最后我们需要根据自己的业务逻辑来进行处理,如果用户不同意授权的话可能我们会有一个让他手动输入的界面,如果不是强制获取手机号的话可以直接跳转页面进行下一步。(用户不同意授权errMsg返回‘getPhoneNumber:fail user deny')

5.用户同意授权,我们可以根据login时获取到的code来通过后台以及微信处理拿到session_key,最后通过app_id,session_key,iv,encryptedData(用户同意授权errMsg返回‘getPhoneNumber:ok')

总结

以上所述是小编给大家介绍的微信小程序获取手机号授权用户登录功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
JavaScript 对Cookie 操作的封装小结
Dec 31 Javascript
js局部刷新页面时间具体实现
Jul 04 Javascript
JQuery伸缩导航练习示例
Nov 13 Javascript
js仿微信语音播放实现思路
Dec 12 Javascript
js数字舍入误差以及解决方法(必看篇)
Feb 28 Javascript
求js数组的最大值和最小值的四种方法
Mar 03 Javascript
vue使用vue-i18n实现国际化的实现代码
Apr 08 Javascript
webpack4 css打包压缩问题的解决
May 18 Javascript
vue单页面实现当前页面刷新或跳转时提示保存
Nov 02 Javascript
ES6基础之默认参数值
Feb 21 Javascript
原生js+css调节音量滑块
Jan 15 Javascript
解决vue侦听器watch,调用this时出现undefined的问题
Oct 30 Javascript
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 #jQuery
webpack中CommonsChunkPlugin详细教程(小结)
Nov 09 #Javascript
详解用webpack的CommonsChunkPlugin提取公共代码的3种方式
Nov 09 #Javascript
Angularjs渲染的 using 指令的星级评分系统示例
Nov 09 #Javascript
jQuery实现动态添加节点与遍历节点功能示例
Nov 09 #jQuery
简单实现jquery隔行变色
Nov 09 #jQuery
基于Datatables跳转到指定页的简单实例
Nov 09 #Javascript
You might like
关于php curl获取301或302转向的网址问题的解决方法
2011/06/02 PHP
PHP Parse Error: syntax error, unexpected $end 错误的解决办法
2012/06/05 PHP
PHP查询网站的PR值
2013/10/30 PHP
CodeIgniter生成网站sitemap地图的方法
2013/11/13 PHP
php获取Google机器人访问足迹的方法
2015/04/15 PHP
php计算整个目录大小的方法
2015/06/01 PHP
自写的利用PDO对mysql数据库增删改查操作类
2018/02/19 PHP
javascript检测浏览器flash版本的实现代码
2011/12/06 Javascript
js判断手机和pc端选择不同执行事件的方法
2015/01/30 Javascript
JS代码实现百度地图 画圆 删除标注
2016/10/12 Javascript
详解react-native-fs插件的使用以及遇到的坑
2017/09/12 Javascript
vue实现导航栏效果(选中状态刷新不消失)
2017/12/13 Javascript
JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】
2019/02/22 Javascript
vue基础之v-bind属性、class和style用法分析
2019/03/11 Javascript
vue+element实现图片上传及裁剪功能
2020/06/29 Javascript
[02:28]DOTA2 2017国际邀请赛小组赛回顾
2017/08/09 DOTA
[00:14]护身甲盾
2019/03/06 DOTA
[01:11:32]VG vs FNATIC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python中的__slots__示例详解
2017/07/06 Python
解析Python中的eval()、exec()及其相关函数
2017/12/20 Python
python3读取excel文件只提取某些行某些列的值方法
2018/07/10 Python
python 获取utc时间转化为本地时间的方法
2018/12/31 Python
深入浅析python 协程与go协程的区别
2019/05/09 Python
Python如何用wx模块创建文本编辑器
2020/06/07 Python
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
科茨沃尔德家居商店:Scotts of Stow
2018/06/29 全球购物
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
参观监狱心得体会
2014/01/02 职场文书
十八大闭幕感言
2014/01/22 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
会计试用期自我评价怎么写
2014/09/18 职场文书
个人作风建设剖析材料
2014/10/11 职场文书
SQL实战演练之网上商城数据库商品类别数据操作
2021/10/24 MySQL
Sentry的安装、配置、使用教程(Sentry日志手机系统)
2022/07/23 Python