一、微信小程序官方登录流程图:
二、具体理解
- 微信小程序客户端(小程序前端)
- 第三方服务器端(小程序后端)
- 微信服务器端(微信官方api)
1、前端获得code值,并将code传给后端
小程序前端调用wx.login,获取登录凭证(code),并调用接口,将code发送到后端
2、后端用code换session_key和openid
小程序前端将code传给第三方服务器端,后端调用微信服务器端api,用code换取session_key和openid
3、后端生成新的session(3rd_session)
后端拿到请求回来的session_key和openid,先留着,不能给前端;然后用操作系统提供的真正随机数算法生成一个新的session,叫3rd_session
4、后端建立对应关系,并存储
将3rd_session作为key,微信服务端返回的session_key和openid作为值,保存起来
5、后端将3rd_session发送到小程序前端
前端只拿到3rd_session就够了,小程序不需要知道session_key和openid
6、正常请求
小程序每次请求都将3rd_session放在请求头里,后端解析判断合法性,并进行正常的逻辑处理。
7、需要访问的微信服务端的api
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code