当前位置:网站首页>uniapp微信小程序登录(先授权微信后授权手机号)-- (1)
uniapp微信小程序登录(先授权微信后授权手机号)-- (1)
2022-07-17 00:14:00 【荼蘼_】
1.操作流程
①点击登录按钮,实现微信授权。
②授权允许后弹出绑定手机号授权。
③手机号授权成功后,跳转回登录界面。
2.逻辑流程
①登录之前自动加载出微信的code。
②微信登录后,将获取的微信信息(昵称、头像等)以及后台算出的openid、unionid等保存/更新到数据库的会员表中,并返回算出的session_key+会员信息。
③判断会员信息中手机号是否为空。如果手机号为空,获取手机号授权;否则返回登录界面。
④获取手机号授权,允许后在后台解密。得到手机号。更新数据库中会员表的手机号。
----------------------------------------------------------------------------------------------------------------------------
3.相关参数/组件/api
①开放接口-登录(wx.login)
功能:调用接口获取登录凭证(code)
微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
object.success 回调函数:code--用户登录凭证,有效期5分钟,每次登录都会更新,需要在服务器后台调用 auth.code2Session,使用 code 换取 openid 和 session_key 等信息。
注意:auth.code2Session的使用在本文档后边。
②微信授权-授权弹窗(wx.getSetting)
功能:获取用户当前的授权状态。
微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/authorize.html
scope 列表:用户信息(wx.getUserInfo)、地理位置(wx.getLocation, wx.chooseLocation)等,更多可在微信官方文档中查看。此处用到用户信息。
③开放接口-用户信息(wx.getUserInfo)
功能:获取用户信息
微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/wx.getUserInfo.html
参数:withCredentials(是否带上登录态信息)、lang(显示用户信息语言,简体中文:zh_CN)等。
object.success 回调函数:userInfo--对象,用户信息(微信用户昵称、图片url、性别等);encryptedData--完整用户信息的加密数据;iv--加密算法的初始向量;
注意:userinfo对象的详细信息参照微信官方文档(https://developers.weixin.qq.com/miniprogram/dev/api/open-api/user-info/UserInfo.html)。
④指南-获取手机号(getPhoneNumber)
功能:获取微信用户绑定的手机号。需要先调用wx.login,需要用户主动触发才能发起接口,需要通过button触发。
使用方法:
<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>返回参数:encryptedData--完整用户信息的加密数据;iv--加密算法的初始向量;
加密后得到参数:phoneNumber--用户绑定的手机号。 json 结构。
微信官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
边栏推荐
- leetcode力扣经典题目——82.柱形图中的最大矩形
- Install websocketpp
- ENVI_ Idl: batch splice the daily data of MODIS swath and output it in GeoTIFF format
- ENVI:(2022年最详细的教程)自定义坐标系
- 成信大ENVI_IDL第三周课堂内容1:读取OMI数据(HDF5文件)以及输出+解析
- [tools] Application of SQLite local database in unity3d
- 【AntV G2】如何解决 G2 造成的内存泄露
- 信号与系统实验
- STL--vector容器
- STL -- set container
猜你喜欢

Chapter 2 - system control principle - > classical control theory

第1章-多智能体系统

基于蒙特卡洛的强化学习方法【附带代码实现】

Summary of tree and heap knowledge points

ENVI_IDL:批量拼接Modis Swath的逐日数据并输出为Geotiff格式

DQN理论基础及其代码实现【Pytorch + CartPole-v0】

【Unity编辑器扩展】显示资源目录下所有文件所占内存大小

剑指 Offer 48. 最长不含重复字符的子字符串

剑指 Offer 53 - I. 在排序数组中查找数字 I

php伪协议实现命令执行
随机推荐
图像质量评估指标:SNR、PSNR、MSE和SSIM
Clion 安装以及中开发ROS实现自动提示补全
池式组件之内存池篇
成信大ENVI_IDL第二周课堂内容:打开HDF4文件并读取文件以及简单的数据处理和保存+详细解析
树和堆知识点总结
LeetCode:动态规划中的子序列问题
DoubleDQN的理论基础及其代码实现【Pytorch + Pendulum-v0】
【Unity开发小技巧】Unity混音器Mixer控制全局音量
二叉树的遍历
新手如何配置多个 SSH Key(通俗易懂手把手教学)
成信大ENVI_IDL第二周实验内容:提取所有MODIS气溶胶产品中AOD+详细解析
Cookie和Session的区别
UE4 笔记
Vmware Tools最新安装教程(RHEL8)
Chengxin University envi_ IDL third week class content 1: reading OMI data (HDF5 file) and output + parsing
Difference between close and shutdown
动态规划问题 - 小兵向前冲
STL--string容器
ENVI_ Idl: batch Reproject MODIS swath products and specify the range output as GeoTIFF format + parsing
Installing MySQL and JDBC on Windows