一、先说明,登录是登录,授权是授权。
1、登录:通过wx.login
拿到code
给后台,接口返回token
、openID
等参数。有了这些参数我们就可以直接请求那些不需要用户操作便可以读取的接口(比如:新闻列表、新闻详情、视频播放等等);
2、授权:当小程序需要用户操作(比如:关注、评论、下单购买、地理位置、个人中心等等),就需要用户先授权。
二、流程图
三、流程步骤解析
-
首先小程序会通过 wx.checkSession() 校验登陆状态
success :接口调用成功,session_key未过期;
fail :接口调用失败,session_key已过期;
1、 小程序端 通过 wx.login() 获取code 并 通过 wx.request () 提交 code 给己方服务器
2、服务器 将获取到的Appid + appSecret + code 提交 到微信方服务器从而获取 session_key & openid
3、服务器 根据 session_key & openid 生成 3rd_session(微信方提出的基于安全性的考虑,建议开发者不要将openid等关键性信息进行数据传输) 并返回 3rd_session 到小程序端
4、小程序端 wx.setStorage() 存储 3rd_session 在后续用户操作需要凭证时 附带该参数
5、小程序端 wx.getUserInfo() 获取用户信息 + wx.getStorage 获取 3rd_sessio