微信小程序之登录(Node.js-Koa2-本地服务器)

本文档介绍了如何使用Node.js的Koa2框架,在本地服务器上实现微信小程序的登录流程。详细讨论了登录逻辑,包括客户端获取登录凭证、服务器验证和维护登录态,以及关键代码示例。内容适用于学习交流,不遵循标准登录流程。
摘要由CSDN通过智能技术生成

导言:

  1. 使用Node.jsKoa2框架,在本地服务器上实现微信小程序的登录过程。
  2. 该登录逻辑设计根据微信官方登录时序图改编,并不是标准流程,仅供学习交流使用。
  3. 重点在思路,忽视了部分细节。

1.登录逻辑

在这里插入图片描述

  1. 微信小程序中新建index页面,设计“登录”按钮,点击按钮触发以下事件。

  2. 在微信小程序的客户端调用接口wx.login()来获取code(登录凭证)

  3. 调用接口wx.request()code发送到开发者服务器

  4. 在开发者服务器处,将从客户端传递过来的code以及小程序本身的appidappsecret组合成一段URL:

    // GET请求
    // APPID,SECRET,JSCODE分别替换为appid,appsecret和code的值
    https://api.weixin.qq.com/sns/jscode2session?appid=APPID&secret=SECRET&js_code=JSCODE&grant_type=authorization_code
    
  5. 在开发者服务器上发送上述GET请求,微信服务器会返回openidsession_key的值

  6. 通过算法(可以是当前时间或随机数等等),生成_3rd_session

  7. openidsession_key封装成JSON对象。

  8. 生成的_3rd_session作为key,封装好的JSON对象作为value,存储到Redis数据库中,并设置好合适的过期时间。

  9. 生成的_3rd_session发送到客户端中。

  10. 在客户端中,调用接口wx.setStorageSync(),把_3rd_session存入缓存中

  11. 完整的登录流程结束。

2.自定义登录态

在这里插入图片描述

2.1 登录验证

用户登录后重新进入小程序时,调用接口wx.checkSession()来检测登录态。若有效,则继续进入下一页面;若失效,则重新发起上述的登录流程。

2.2 登录态维护

  1. 用户已经登录成功,进入下一级页面。
  2. 用户发起敏感请求(如删除,修改,添加等操作),调用接口wx.request()时,使其携带缓存中的_3rd_session
  3. 开发者服务器响应请求前,先到Redis数据库中查询有无键值为_3rd_session的记录。
  4. 若记录存在并有效,则正常响应请求。
  5. 若记录不存在或已经失效,则拒绝
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值