最近做了下微信小程序登录整个逻辑,之前做的不是很规范,现在重新梳理下流程顺便记录下。
先贴下官方流程图:
应该说整个流程还是比较清晰的,说下我碰到的问题:
1.是开发者服务器token过期处理问题,因为微信小程序封装本地缓存方法不能设置时间,所以服务过期后,需要重新走微信登录,获取code,然后开发者服务器生成token的逻辑,这块我写了一个校验token是否过期的接口,每次进来小程序的时候检查下,过期的话,重新走wx.login,没有过期的话,直接请求业务接口;
2.是session_key的使用,之前没有用到过,现在我是这样用的:wx.login拿到code,传到后台服务,然后请求微信接口,拿到session_key,缓存到redis中,没有设置过期时间(,因为这个session_key过期时间是不确定的,而且一个用户只设置一次,下次会覆盖),然后小程序端获取加密的用户信息(也有不加密部分)和手机号后,传给后台服务,后台服务通过解密函数直接解密即可拿到数据,更新到用户信息里面;
3.wx.checkSession方法在IDE中无效,需要通过真机测试;