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

6,416 阅读1分钟

登录流程

登录流程

  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 解密数据,获得用户绑定的手机号

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

获取用户手机号,前后端交互流程

参考文档

小程序开发文档