微信小程序登录
小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。
微信小程序登录流程时序图
转自: 微信小程序登录流程图
具体解析
- 小程序(小程序前端 uni-app实现)
- 开发者服务器(小程序后端 java实现)
- 微信接口服务(微信官方api)
1、前端获得code值,并将code传给后端
小程序前端调用wx.login,获取登录凭证(code),调用api(后端提供),将code传到后端。
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
2、后端用code换session_key和openid
小程序前端将code传给第三方服务器端(java端),后端调用微信服务器端api,得到session_key和openid。
3、自定义登录状态 & 通过自定义的登录状态查询 (本地开发时可以先不实现)
调用 auth.code2Session 接口,换取 用户唯一标识 OpenID 、 用户在微信开放平台帐号下的唯一标识UnionID(若当前小程序已绑定到微信开放平台帐号) 和 会话密钥 session_key。
4、返回业务数据
通过后端api返回数据到前端。
注意:
- 临时登录凭证 code 只能使用一次
- 会话密钥
session_key
是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥。