返回

小程序生命周期梳理与多场景鉴权逻辑

前端

一、小程序的生命周期

小程序的生命周期从其启动到退出贯穿始终,可以分为六个阶段:

  1. 启动阶段: 小程序首次启动时,从进入启动图到显示页面,这段时间处于启动阶段。
  2. 运行阶段: 用户在小程序内进行操作时,小程序处于运行阶段。
  3. 休眠阶段: 用户离开小程序时,小程序进入休眠阶段,但是小程序依然在后台运行。
  4. 唤醒阶段: 当用户再次打开小程序时,小程序从休眠阶段进入唤醒阶段,此时页面会重新渲染,但数据不会丢失。
  5. 前台运行阶段: 用户进入小程序时,小程序处于前台运行阶段。
  6. 后台运行阶段: 当用户进入其他小程序或退出小程序时,小程序进入后台运行阶段,此时小程序不在前台显示,但仍然可以接收消息。

二、登录与注册流程

小程序的登录与注册流程如下:

  1. 用户点击登录按钮: 当用户点击登录按钮时,小程序会调用wx.login接口获取临时登录凭证code。
  2. 将code发送到服务器: 小程序将code发送到服务器,服务器使用code换取session_key和openid。
  3. 服务器存储session_key和openid: 服务器将session_key和openid存储起来,并在用户成功登录后返回给小程序。
  4. 小程序将session_key和openid存储在本地: 小程序将session_key和openid存储在本地,以便在后续请求中使用。
  5. 用户完成登录: 用户完成登录后,小程序会调用app.logincallback函数,开发者可以在这个函数中执行登录成功后的操作。

三、session鉴权机制

小程序使用session鉴权机制来确保用户身份的真实性,session鉴权机制的原理如下:

  1. 服务器生成session_key和openid: 当用户成功登录后,服务器会生成一个唯一的session_key和openid,并将其发送给小程序。
  2. 小程序将session_key和openid存储在本地: 小程序将session_key和openid存储在本地,以便在后续请求中使用。
  3. 小程序在请求中携带session_key和openid: 当小程序向服务器发起请求时,需要在请求中携带session_key和openid。
  4. 服务器验证session_key和openid: 服务器收到请求后,会验证session_key和openid的有效性。
  5. 服务器返回请求结果: 如果session_key和openid有效,服务器会返回请求结果给小程序。

四、wx.login和app.logincallback这两个关键函数

  • wx.login: wx.login函数用于获取临时登录凭证code,开发者可以使用这个code换取session_key和openid。
  • app.logincallback: app.logincallback函数是在用户成功登录后执行的回调函数,开发者可以在这个函数中执行登录成功后的操作。

五、结语

小程序的生命周期、登录与注册流程、session鉴权机制以及wx.login和app.logincallback这两个关键函数是小程序开发的基础知识,掌握这些知识有助于开发者更好地开发小程序。