微信小程序登录与微擎PHP后台数据交互原理剖析

首先先放上一个微信开发文档的登录流程时序,

微信小程序登录与微擎PHP后台数据交互原理剖析_第1张图片

调用 wx.login() 获取 临时登录凭证code ,并回传到开发者服务器 

  1. 调用 code2Session 接口,换取 用户唯一标识 OpenID 和 会话密钥 session_key

    之后开发者服务器可以根据用户标识来生成自定义登录态,用于后续业务逻辑中前后端交互时识别用户身份。

    注意:

  2. 会话密钥 session_key 是对用户数据进行 加密签名 的密钥。为了应用自身的数据安全,开发者服务器不应该把会话密钥下发到小程序,也不应该对外提供这个密钥
  3. 临时登录凭证 code 只能使用一次

 

微信小程序和第三方服务器、微信服务器的登录身份验证流程为,微信小程序调用wx.login() 获取临时登录凭证code,这个code只能使用一次,code被回传到开发者的服务器。开发者服务器传给微信服务器APPID和APPsecret、code,调用微信服务器的code2Session接口,换取用户唯一标识OpenID和会话密钥session_key[1]。

微信小程序登录与微擎PHP后台数据交互原理剖析_第2张图片

result 用户信息结构,其中 result.detail 为具体用户加密数据,此数据等同于之前wx.getUserInfo 返回的数据,拿到值后,需要传递给服务端,解密数据并返回。

userInfo 请求接口后返回数据,结构如下:

  1. sessionid 用户sessionid标识
  2. wxInfo 昵称,头像等

你可能感兴趣的:(微信小程序)