小程序登录及用户信息和手机号的获取
登录流程
- 小程序通过
wx.login
获取code
(用户登录凭证,有效期五分钟,使用一次后实效) - 服务端拿到
code
,调用code2Session
,获取用户的openid
(用户在当前应用的唯一标识)、unionid
(用户在开发平台的唯一标识)session_key
(会话秘钥是对用户数据进行 加密签名 的秘钥,在获取用户信息时会用到) 等信息。为了安全,服务器不应该把会话秘钥下发到小程序,也不应该对外提供这个秘钥 - 通过
unionid
openid
自定义服务端登录态
获取用户信息
- 用户授权后,小程序通过
wx.getUserInfo
获取用户信息,敏感信息被加密 - 把加密信息传给服务端,使用在登录时获取的
session_key
解密数据,解密方法可以看微信的 开放数据校验与解密文档
获取手机号
需要用户主动触发才能发起获取手机号接口,所以该功能不由 API 来调用,需用 <button>
组件的点击来触发。获取手机号文档。
- 小程序通过
<button>
组件触发getPhoneNumber
事件,获得加密后的信息 - 把加密信息传给服务端,使用在登录时获取的
session_key
解密数据,获得用户绑定的手机号