小程序登录态维护思路

时间:2024-03-14 09:50:07

本文是作者学习时所做笔记,若有错误之处,还请各位指出修改,谢谢!

首先我们来看一下小程序登录机制。
小程序登录态维护思路
从上图我们可以看到,小程序的登录步骤如下:

  1. 小程序(前端)使用wx.login()从微信服务器获取临时登录凭证code
  2. 小程序(前端)使用wx.request通过请求将code发送给开发者服务器(后端),开发者服务器(后端)利用appid、appsecret与code向微信服务器获取session_key与openid
  3. 开发者服务器(后端)自定义登录态与openid和session_key关联起来,写成session
  4. 开发者服务器(后端)将登录态返回给小程序(前端),小程序(前端)使用wx.setStorageSync()将登录态保存
  5. 小程序(前端)执行业务请求,携带自定义登录态发送给开发者服务器(后端),供开发者服务器鉴定用户身份

在整个流程中,小程序(前端)无法获取openid与session_key(避免敏感信息泄露),需要session_key解密的敏感信息,传回开发者服务器(后端)处理。

对于如何在应用中保存用户登录态?
1、前端保存
因为session_key存在时效性的问题,而小程序(前端)可通过wx.checkSession()来检查session_key是否过期。因此可以通过这个来座位保存用户登录态的机制。
2、后端保存
在上述步骤3中,自定义登录态写成session时,直接设置过期时间,并定期通知小程序(前端)重新进行登录(wx.login)。