返回
小程序生命周期梳理与多场景鉴权逻辑
前端
2023-10-25 11:28:22
一、小程序的生命周期
小程序的生命周期从其启动到退出贯穿始终,可以分为六个阶段:
- 启动阶段: 小程序首次启动时,从进入启动图到显示页面,这段时间处于启动阶段。
- 运行阶段: 用户在小程序内进行操作时,小程序处于运行阶段。
- 休眠阶段: 用户离开小程序时,小程序进入休眠阶段,但是小程序依然在后台运行。
- 唤醒阶段: 当用户再次打开小程序时,小程序从休眠阶段进入唤醒阶段,此时页面会重新渲染,但数据不会丢失。
- 前台运行阶段: 用户进入小程序时,小程序处于前台运行阶段。
- 后台运行阶段: 当用户进入其他小程序或退出小程序时,小程序进入后台运行阶段,此时小程序不在前台显示,但仍然可以接收消息。
二、登录与注册流程
小程序的登录与注册流程如下:
- 用户点击登录按钮: 当用户点击登录按钮时,小程序会调用wx.login接口获取临时登录凭证code。
- 将code发送到服务器: 小程序将code发送到服务器,服务器使用code换取session_key和openid。
- 服务器存储session_key和openid: 服务器将session_key和openid存储起来,并在用户成功登录后返回给小程序。
- 小程序将session_key和openid存储在本地: 小程序将session_key和openid存储在本地,以便在后续请求中使用。
- 用户完成登录: 用户完成登录后,小程序会调用app.logincallback函数,开发者可以在这个函数中执行登录成功后的操作。
三、session鉴权机制
小程序使用session鉴权机制来确保用户身份的真实性,session鉴权机制的原理如下:
- 服务器生成session_key和openid: 当用户成功登录后,服务器会生成一个唯一的session_key和openid,并将其发送给小程序。
- 小程序将session_key和openid存储在本地: 小程序将session_key和openid存储在本地,以便在后续请求中使用。
- 小程序在请求中携带session_key和openid: 当小程序向服务器发起请求时,需要在请求中携带session_key和openid。
- 服务器验证session_key和openid: 服务器收到请求后,会验证session_key和openid的有效性。
- 服务器返回请求结果: 如果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这两个关键函数是小程序开发的基础知识,掌握这些知识有助于开发者更好地开发小程序。