导言:
使用Node.js的Koa2框架,在本地服务器上实现微信小程序的登录过程。
该登录逻辑设计根据微信官方登录时序图改编,并不是标准流程,仅供学习交流使用。
重点在思路,忽视了部分细节。
1.登录逻辑
微信小程序登录流程
微信小程序中新建index页面,设计“登录”按钮,点击按钮触发以下事件。
在微信小程序的客户端调用接口wx.login()来获取code(登录凭证)。
调用接口wx.request()将code发送到开发者服务器。
在开发者服务器处,将从客户端传递过来的code以及小程序本身的appid和appsecret组合成一段URL:
// GET请求
// APPID,SECRET,JSCODE分别替换为appid,appsecret和code的值
https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
在开发者服务器上发送上述GET请求,微信服务器会返回openid和session_key的值。
通过算法(可以是当前时间或随机数等等),生成_3rd_session。
将openid和session_key封装成JSON对象。