全栈项目实战手记|艺培场馆课时预约小程序底层安全、交互、分包全量迭代复盘

发布时间:2026/10/30 2:51:27

全栈项目实战手记|艺培场馆课时预约小程序底层安全、交互、分包全量迭代复盘 承接第四、五、六篇业务层面 Bug 复盘前面几篇已经完成后台业务 Bug、学员‑教师‑后台三端联动、定时任务、弱网并发、页面交互类问题复盘。本篇专门处理 迭代新增的底层安全、会话鉴权、密码兼容、数据脱敏、接口限流、小程序分包、PC 管理端 Demo 相关问题业务层逻辑 Bug 不再重复赘述。 统一采用现象 → 根因分析 → 修复方案 → 开发启示结构。一、Token 与会话生命周期相关踩坑坑 1Token 过期之后页面依旧保留本地登录态不会自动跳转登录页现象管理员 / 子账号登录后台Token 到达有效期用户不主动退出继续操作后台页面本地依旧保存旧 Token页面不会自动跳转到登录页发起接口才返回鉴权失败用户体验差。根因前端没有对接口返回的 401 未授权状态做统一拦截处理没有做本地 Token 有效期校验仅依靠后端接口返回错误之后才感知会话失效。修复方案请求拦截器统一捕获 401 返回码清除本地全部登录凭证直接跳转登录页面并给出提示前端本地解析 Token 内的过期时间页面 onShow 做预校验提前感知会话过期后端维护 Token 黑名单过期、登出后的 Token 加入黑名单即使伪造携带也直接拦截。开发启示会话失效不能只靠后端接口返回前端全局拦截器要统一处理鉴权失败黑名单机制防止旧凭证被重复使用。坑 2用户执行登出操作旧 Token 依旧可以调用后台接口现象账号正常点击退出登录前端清除本地 token但是把登出前的 Token 复制出来依旧可以调用后台业务接口执行操作。根因登出动作仅仅清除前端存储后端没有将该 Token 加入黑名单接口鉴权仍然认为该 Token 有效。修复方案用户登出时后端把当前 Token 写入黑名单集合所有后台接口鉴权阶段校验黑名单黑名单内的 Token 直接返回 401 拒绝访问。设置黑名单过期时间与 Token 生命周期对齐。开发启示服务端会话管控不能完全依赖前端清除凭证后端黑名单是强制兜底。坑 3V1.0 旧版本 MD5 密码账号无法兼容 V2.0 加盐密码体系现象升级 V2.0 加盐加密之后V1.0 遗留纯 MD5 加密的老账号登录失败无法正常登录后台。根因V2.0 全部使用 salt 加盐哈希校验逻辑没有做旧密码的兼容适配逻辑。修复方案登录校验阶段如果是旧 MD5 格式账号先用旧算法校验密码密码校验通过之后自动生成随机盐把密码升级为加盐加密格式更新入库数据库增加字段标记账号密码加密版本。开发启示系统加密算法迭代必须做好旧数据兼容迁移避免存量用户无法登录。二、细粒度权限与敏感数据脱敏踩坑坑 4低权限子账号学员手机号、姓名明文直接返回无脱敏处理现象配置无隐私权限的子管理员账号进入学员列表页面可以直接看到学员完整手机号、明文姓名存在用户隐私泄露风险。根因接口没有根据账号权限码做脱敏分支无论账号拥有何种权限全部返回完整学员敏感字段。修复方案定义权限码student:privacy查看学员完整隐私、booking:proxy拥有代预约权限接口返回学员数据时判断当前登录账号权限无隐私权限则对手机号、姓名做掩码脱敏PC 管理端、小程序后台两套接口复用同一套脱敏逻辑。开发启示敏感数据脱敏逻辑放在接口层不要只在前端做掩码防止抓包拿到明文数据。坑 5子账号缺少权限码校验越权执行代预约操作现象未分配booking:proxy代预约权限的子账号依旧可以调用代预约接口给学员创建预约记录。根因页面隐藏代预约按钮但是后端接口没有校验该权限码仅做前端按钮隐藏接口没有鉴权拦截。修复方案所有受权限码控制的接口后端鉴权中间件校验对应权限标识无权限直接返回 403 禁止访问前端仅做 UI 层面控制。开发启示细粒度权限前端只做界面隐藏权限校验必须放在后端接口中间件。三、接口限流与防护踩坑坑 6后台业务接口没有限流短时间高频请求容易压垮云开发环境现象恶意或者异常客户端短时间大量循环调用后台接口数据库查询暴涨云函数被大量消耗出现整体响应变慢。根因V1.0 版本没有接口限流逻辑不对单账号请求频率做限制。修复方案增加接口限流中间件单账号一分钟最大请求阈值超过阈值返回 429 请求过于频繁拒绝多余请求。针对高危写接口进一步收紧频率。开发启示云开发环境资源有限管理后台写接口一定要增加限流防护避免资源被恶意消耗。四、小程序分包工程化踩坑坑 7小程序主包体积超限无法上传发布现象所有后台、学员、教师页面全部放在主包代码包体积超出微信小程序 2MB 限制上传代码包时报错。根因V1.0 没有做分包拆分全部业务页面、组件全部打包进主包。修复方案进行小程序分包改造学员端业务、管理员后台业务拆分为独立 subPackages 分包主包只保留首页、登录、公共基础组件每个分包打包体积控制在 2MB 以内满足微信上传限制。开发启示业务页面多的小程序早期就要规划分包避免后期迭代包体积超限。坑 8跨分包页面跳转出现资源缺失、页面空白样式错乱现象从学员端分包页面跳转管理员后台分包页面偶发页面空白、组件样式丢失、资源加载失败。根因分包组件引用路径错误部分公共组件只放在某个分包没有放到主包公共目录跨分包跳转资源未正常加载。修复方案公共组件、公共样式统一放置主包校验分包页面路由配置修正页面路径测试覆盖全部跨分包跳转场景。开发启示分包模式下公共资源路径很容易出错所有跨分包访问的组件、样式统一放在主包。坑 9分包没有按需懒加载小程序启动加载全部分包资源首屏加载缓慢现象小程序打开首页就加载全部分包资源首页打开速度慢。根因错误配置分包把分包页面配置进主包或者配置预加载策略不合理。修复方案保证 subPackages 分包为按需加载仅进入分包页面的时候才加载分包资源合理配置 preloadRule 预加载规则。开发启示分包的核心收益就是按需加载错误配置会完全失去分包优化效果。五、PC 管理端 Demo 专项踩坑坑 10PC 端 Mock 离线模式部分字段和线上云函数返回数据不一致现象PC 管理端开启 Mock 离线演示模式部分业务字段、计算结果和真实云开发环境返回结果存在细微差异用于演示容易产生误解。根因Mock 模拟数据硬编码写死没有复用业务计算逻辑Mock 与真实业务逻辑两套实现。修复方案Mock 模式尽量复用同样的业务计算函数仅替换数据源关键业务输出保证 Mock 与线上逻辑完全对齐。开发启示Mock 演示模式不要复制一份业务逻辑尽量复用公共业务函数避免模拟数据和真实业务结果脱节。坑 11PC 端与小程序后台相同业务课时计算逻辑不一致现象PC 管理端执行手动核销学员课时扣减数值和小程序管理员后台执行相同操作结果不一致。根因PC 端 Demo 独立实现一套课时计算扣减逻辑没有复用云函数公共业务逻辑。修复方案PC 端所有写操作全部调用云端云函数由云函数统一执行业务计算Mock 模式复用同一套计算工具函数保证两端结果完全一致。开发启示多端管理端小程序后台 PC 后台业务计算全部收敛到后端云函数客户端只做展示不在客户端执行业务计算。坑 12PC 端操作业务审计操作日志没有正常写入现象在 PC 管理端执行代预约、修改排班、撤销核销等操作后台审计日志表没有生成对应操作记录。根因PC 端业务分支调用云函数时没有带入操作者身份信息没有触发统一日志写入工具。修复方案PC 端所有业务请求携带操作者身份标识云函数层统一处理操作日志写入不区分请求来源是小程序还是 PC 端。开发启示多客户端接入同一套后端日志、鉴权逻辑在云函数层统一处理不要区分客户端来源。六、迭代复盘总结启示安全鉴权不能只依赖前端Token 会话、黑名单、权限码校验、数据脱敏全部在后端接口层实现前端仅做交互控制。加密算法升级一定要做好存量兼容避免老账号无法登录使用系统。小程序分包改造重点关注包体积、跨分包资源引用、按需懒加载三个点防止分包改造引入新问题。PC 管理 Demo 属于多客户端接入业务计算、日志、鉴权全部收敛在后端不要在客户端重复实现业务逻辑避免逻辑分裂。云开发环境资源有限接口限流、黑名单、会话管控是保障系统稳定运行的底层手段。至此全项目所有 Bug、缺陷、风险点全部复盘完毕 第四篇纯后台业务 Bug第五、六篇三端联动、核销预约、定时任务、弱网并发交互 Bug第七篇V2.0 底层安全、分包、PC Demo 迭代问题。 第八篇将为 PC 管理端 Demo 完整成果展示第九篇为项目整体全流程总结复盘。本文属于《全栈项目实战手记艺培场馆课时预约小程序》专栏系列持续更新可订阅专栏阅读完整连载。连载目录回顾第一篇艺培场馆课时预约小程序 B 端管理后台完整产品设计思路第二篇艺培场馆课时预约小程序 C 端学员端完整产品设计思路第三篇艺培场馆课时预约小程序后台、教师端、学员端实拍与业务流程图汇总第四篇艺培场馆课时预约小程序后台开发踩坑复盘课程、学员、权限配置类 Bug第五篇艺培场馆课时预约小程序用户端 后台联动踩坑上篇预约、课时、同步问题第六篇艺培场馆课时预约小程序用户端 后台联动踩坑下篇排课核销、定时任务、页面交互异常第七篇艺培场馆课时预约小程序 V2.0 底层安全、交互、分包全量迭代复盘第八篇艺培场馆课时预约小程序 PC 管理端 Demo 完整开发成果展示第九篇艺培场馆课时预约小程序全项目开发历程完整复盘总结
延伸阅读

更多相关文章

2026/10/28 16:02:44

蓝桥杯单片机国赛实战:多功能测量仪表开发全解析

1. 项目概述:从国赛真题到实战仪表 看到“蓝桥杯单片机第九届国赛题目-多功能测量仪表”这个标题,相信很多正在备赛蓝桥杯单片机赛道,或者对嵌入式综合项目感兴趣的朋友都会心头一动。这不仅仅是一道过去的竞赛题,更是一个集成了模…

2026/10/28 16:02:45

蓝桥杯国赛填空题精讲:从暴力枚举到数学建模的解题策略

1. 项目概述:为什么我们要复盘2020年蓝桥杯B组国赛填空题?如果你正在准备蓝桥杯,或者对算法竞赛感兴趣,那么“真题”绝对是你绕不开的宝藏。而2020年蓝桥杯B组国赛的填空题,更是宝藏中的精品。为什么这么说&#xff1f…

2026/10/28 16:02:46

蓝桥杯国赛单片机项目实战:多功能测量仪表系统设计与优化

1. 项目背景与核心挑战解析 第九届蓝桥杯单片机国赛的“多功能测量仪表”题目,可以说是当时所有参赛选手面前的一座大山。它不像省赛那样,可能只考察一两个模块的简单应用,而是将单片机系统的综合性、实时性、精度和稳定性要求推到了一个全新…

2026/10/30 2:50:58

微信小游戏支付闭环实战:猜骰子大小+V3支付接口全链路

简介:这是一套可直接投入运营的微信小游戏「猜骰子大小」完整源码包,面向中小型开发者、微信公众号运营者及H5游戏二次定制需求方,解决从零搭建高仿微信赌博类互动游戏的技术门槛与配置复杂度问题。资源共2000个文件,主体为521个P…

2026/10/30 2:50:58

Canon EDSDK C#开发避坑指南:版本兼容、驱动签名与平台位数配置

简介:本资源是佳能官方EDSDK 3.6.1开发包的完整集成版,面向C#、C及VB桌面应用开发者,用于构建相机控制类软件,如远程拍摄系统、自动化影像采集工具或专业图像处理前端。包内含1599个文件,涵盖118个头文件(h…

2026/10/30 2:50:58

Java Socket实现QQ聊天核心:TCP长连接与二进制协议实战

简介:ACCP5.0第一学期结业项目是一套面向编程初学者的完整社交应用实战源码,聚焦在线聊天与用户关系管理核心场景,助力学员系统掌握C#桌面开发、数据库操作、UI设计及基础网络通信能力。资源包含283个文件,以158个BMP界面素材&…

2026/10/30 2:50:58

C#调用佳能EDSDK开发实战:从驱动安装到RAW拍摄全链路指南

简介:本资源是佳能官方EOS数码相机开发套件EDSDK 3.6.1完整版,专为C#、C及VB开发者设计,用于构建Windows平台下的相机控制类应用,如自动化拍摄系统、远程监控或专业图像采集软件。包内含1599个文件,涵盖119个跨平台DLL…

2026/10/29 17:05:52

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/29 17:06:02

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/29 17:06:13

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/30 0:00:46

NCP1342高频准谐振反激控制器:从设计约束到验收的完整方案

简介:NCP1342 高频准谐振反激控制器应用介绍译文文档,面向电源设计工程师、硬件研发人员及开关电源学习者,帮助读者跨越英文原版资料的语言门槛,系统理解这款高集成度 QR Flyback 控制器的设计要点。文档围绕芯片核心特性展开&…

2026/10/30 0:00:46

NCP1342准谐振反激电源设计:从选型到验收的全流程解析

简介:这份文档面向电源设计工程师与开关电源学习者,系统梳理NCP1342高频准谐振反激控制器的应用要点,帮助读者快速理解这款高集成度离线电源变换器控制芯片的工作机制与设计方法。内容涵盖芯片核心特性、引脚功能定义、电气特性参数表、最大额…

2026/10/30 0:00:46

Web系统自动登出机制设计与实现全解析

1. 系统自动登出机制的设计初衷在各类Web应用和后台管理系统中,自动登出功能早已成为标配。这个看似简单的功能背后,实际上涉及用户安全、资源管理和体验优化的多重考量。作为从业十多年的老开发,我见过太多因为登出逻辑设计不当导致的安全事…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑