登录流程

  1. 小程序通过 wx.login 获取 code(用户登录凭证,有效期五分钟,使用一次后实效)
  2. 服务端拿到 code,调用 code2Session,获取用户的 openid (用户在当前应用的唯一标识)、unionid (用户在开发平台的唯一标识) session_key (会话秘钥是对用户数据进行 加密签名 的秘钥,在获取用户信息时会用到) 等信息。为了安全,服务器不应该把会话秘钥下发到小程序,也不应该对外提供这个秘钥
  3. 通过 unionid openid 自定义服务端登录态

获取用户信息

  1. 用户授权后,小程序通过 wx.getUserInfo 获取用户信息,敏感信息被加密
  2. 把加密信息传给服务端,使用在登录时获取的 session_key 解密数据,解密方法可以看微信的 开放数据校验与解密文档

获取手机号

需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button> 组件的点击来触发。获取手机号文档。

  1. 小程序通过 <button> 组件触发 getPhoneNumber 事件,获得加密后的信息
  2. 把加密信息传给服务端,使用在登录时获取的 session_key 解密数据,获得用户绑定的手机号

下面是我实际开发中画的一张前后端交互的流程图,欢迎指出不足指出。

参考文档

小程序开发文档

小程序登录及用户信息和手机号的获取相关推荐

  1. 小程序登录、用户信息相关接口调整说明

    为优化用户的使用体验,平台将进行以下调整: 2021年2月23日起,若小程序已在微信开放平台进行绑定,则通过wx.login接口获取的登录凭证可直接换取unionID 2021年4月13日后发布的小 ...

  2. (详细版)java实现小程序获取微信登录,用户信息,手机号,头像

    ps:springboot结合mybatisPlus.mysql实现,简单易懂,一件粘贴使用,详细往下看↓ 步骤: 1.注册微信开发平台账号,并创建小程序,获取小程序的AppID和AppSecret. ...

  3. 小程序如何保存用户信息(保持登录状态)?

    小程序如何保存用户信息?如何保存用户登录状态? 提供一种实现思路,仅供参考. 第一步:启动小程序后,会静默授权,通过wx.login获取登录凭证code,再从后台换取openId,同时将session ...

  4. 微信小程序2022最新用户信息授权设置

    微信小程序2022最新用户信息授权设置 微信小程序中 用户信息授权 一直是一个非常重要的功能,它有着提升用户体验.进行用户身份认证.便于开发者进行数据分析等作用. -- 但是用户授权功能涉及到用户隐私 ...

  5. uni-app小程序使用小程序码绑定用户信息合成海报

    uni-app小程序使用小程序码绑定用户信息合成海报 需求 uni-app小程序使用小程序码绑定用户信息合成海报,小程序码绑定用户信息,和背景图片生成一张海报并保存到本地. 目标 生成目标图片 并保存 ...

  6. 山东大学项目实训——解决微信小程序无法获得用户信息问题

    微信小程序--wx.getUserProfile(Object object) 一.关于用户信息接口的调整 二.调整说明 三.wx.getUserInfo方法(现在返回匿名用户数据,需自行解密) 四. ...

  7. 微信小程序python解析获取用户手机号_python获取微信小程序openid及用户信息

    填坑记录:1.个人微信公众订阅号是不能申请微信认证的.公众号的类型在注册时一旦选择就不能更改,微信公众号认证的功能除个人订阅号外,都可以申请认证,因而个人订阅号不能申请认证.这句话的意思就是个人订阅号 ...

  8. 微信小程序实现授权用户绑定的手机号,后台java解密

    具体思路为:小程序前端点击按钮,弹出授权手机号窗口,用户允许后,js得到加密数据,加密向量,session_key,将这些信息传递到java后台解密,最终拿到电话号码.(直接通过js是获取不到的) w ...

  9. uniapp 开发微信小程序如何授权用户信息

    <template><view class="content"><view @click="wxGetUserInfo">授 ...

最新文章

  1. 多角度认识markdown
  2. SQLServer中char、varchar、nchar、nvarchar的区别:
  3. 释放C盘空间27招具体优化技巧
  4. 从 Hello World 开始
  5. 用代码的方式增加servlet mapping定义
  6. C++调用Asprise OCR识别图片
  7. php软件开发--sphinx索引静态化及伪静态
  8. 滚动到底部自动加载 html,移动端页面滚动到底部自动加载数据
  9. 阿里云下mysql远程访问被拒绝_记一次MySQL数据库拒绝访问的解决过程
  10. statusBar——状态栏
  11. Java LinkedHashMap类
  12. Redis 单数据多源超高并发下的解决方案
  13. 技术人成长路径之我见
  14. 时间管理-重要与紧急
  15. 浅谈Attention-based Model【原理篇】
  16. HTML文本域添加滑杆,Objective-C 自定义UISlider滑杆 分段样式
  17. 红米note10和红米note9哪个值得买
  18. MySQL数据库(三)-表行的语句使用
  19. Ubuntu服务器上用CornerNet-Squeeze训练自己的模型
  20. c语言编程培训网站,最新C语言编程培训

热门文章

  1. 2017长春java平均工资_速看!长春平均工资出炉!
  2. js字符串转换为json对象JSON.parse()及将json对象转为json字符串JSON.stringify()
  3. sublime多行变一行及sublime一键格式化html/css/js、光标快捷键移动行首行尾、删除空行
  4. js中src赋值理解
  5. GitHub发布年度机器学习榜:TensorFlow最火,PyTorch失踪,Julia第四
  6. 亚马逊Alexa已接入2万种设备,22岁开发者月入1万美元
  7. Goodfellow新研究:对抗样例让机器与人类双双上当 | 论文
  8. 视频全程:哈萨比斯首次公开解读AlphaZero
  9. 怎么在线直接将多张CAD图纸转换成高质量黑白PNG格式?
  10. Linux的常用命令练习