由于小程序的登陆和登陆状态维护流程比较复杂,需要客户端和服务器的数次交互以及服务器端的相应处理,很多同学都觉得比较麻烦,所以特别写下这篇博客为大家梳理一下微信的登陆流程,同时加深对微信小程序与登陆状态有关的登陆态标识,用户数据解密,数据校验等具体实现的了解。


首先来说明一下微信的登陆和登陆状态标识实现的流程。

一.小程序登陆和登陆状态维护

微信登陆的主要步骤如下:

1. 调用 wx.login() ,成功后取得返回参数 code,用于后续换取 session_key.

2. 调用 wx.request() 将 code 发送到服务器

3. 服务器将 code 和存储在服务器的 appid 和 appscret 三个参数一起,向下面的微信服务器接口发起请求:

  https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code

获得返回参数 openid 和 session_key 。

请求url中的参数对应上文提到的三个参数。返回的op