【AI技能工具】——一句话生成完整的用户系统,登录鉴权、短信验证、资料管理全包 哈罗大家好我是【考拉搞AI】十年老登转型全栈AI 的 全栈AI程序员。上篇文章介绍了backend-generate-skill一句话生成后端骨架搞定选型、目录、配置、接口契约。但骨架只是房子的框架里面还没有人。绝大多数后端项目第一个要写的业务模块都是同一个——用户系统注册、登录、JWT 鉴权、短信验证码、找回密码、个人资料。接下来我将继续结合我的亲身实战经验将这座大厦所有需要的部件拆解揉碎然后像搭积木一样将具体的业务模块一个个拼接上去。从专业角度上将这叫做业务拆分解耦。熟悉后端的童鞋们都知道后端存在着多个耳熟能详的业务模块比如一套电商系统就会拆成用户系统、订单系统、商品系统、购物车系统、物流系统、促销系统以及短信消息系统等等每个系统之间相互独立却又密不可分彼此可以通过消息系统来对接既达到了解耦大大提升了系统性能也能提高项目的可维护度。AI 时代 我们需要拆分而不是直接跟AI 说“我要做一套淘宝商城系统要XXX给我搞定”。这样AI 必然会放飞自我最终落地的东西必然是 “东拼西凑”“东一榔头西一棒槌”即使能用也需要大量的时间去维护完善费时费力不讨好。可是AI 时代该怎么做业务拆分呢这就是今天的重头戏——从业务的角度将不同的模块划分然后用标准的SKILL来完成用户登录鉴权模块的搭建。用户登录鉴权模块基本就那些核心内容特殊内容较少那么我们就可以将其拆解揉碎落地成SKILL用标准的 规范让AI 生成。避免每次跟AI 拉扯也避免AI 彻底放飞自我。废话不多说开干。一、它做什么auth-skill是一个用户系统生成器。一句话触发产出四样东西领域模型与表结构 DDL标准用户表、refresh token 表、第三方绑定表按需裁剪接口契约增量完整的接口文档组合模式下追加进项目的api-contract.md前端可以直接拿去对接可运行实现Java / Go / Python / Node 四种技术栈任选含短信发送、图形验证码、微信登录环境变量清单JWT 密钥、阿里云短信、微信 appid 等全部走 env不写死在代码里。覆盖的功能范围模块内容注册开放注册 / 仅后台创建 / 邀请制手机号唯一约束防重登录账号密码、短信验证码默认阿里云、uniapp 微信小程序code→openid可选解析手机号、第三方 oauth令牌JWT access refresh 双令牌refresh 哈希存储 轮换 重放检测密码找回短信验证码重置重置后吊销全部令牌强制重登图形验证码算术题 SVG无第三方图片库依赖作用于密码登录和发短信资料管理资料读写、凭旧密码改密吊销其他设备、换绑手机号短信验证、注销账号二次确认用户 ID 默认自增 BIGINTMongoDB 用默认 ObjectId有防枚举、多实例需求时可选 UUIDv7 / 雪花 / 内外双 ID。二、安装与使用老地址 不用多说git地址https://github.com/jiushiwon/wg-skills/tree/main/module-generate-skill/auth-skill一天一个SKILL——前端最佳自动化测试 webapp-testing模式场景技术栈来源组合模式项目已有骨架比如刚用 backend-generate-skill 生成过读pom.xml/go.mod/package.json等自动检测接口契约追加进已有的api-contract.md独立模式只要登录模块还没有骨架现场选型规则与 backend-generate-skill 一致生成最小可运行骨架 全新的api-contract.md组合模式是它的主场骨架生成完接着说「加登录」用户系统直接长在骨架上信封、错误码、JWT 工具沿用已有规范不重复生成。三、生成前会问什么技能不会替你瞎猜业务边界生成前有一张确认清单每项都有默认值登录形态常规 / uniapp 小程序 / 两者都要默认常规登录方式账号密码 / 短信验证码默认两者都要短信供应商默认阿里云Dysmsapi密钥走 env图形验证码默认关勾选才开密码找回默认开令牌模式默认 access refresh 双令牌access 2hrefresh 30d 滑动续期uniapp 身份标识仅 openid / 解析手机号企业级二选一必须确认没有特殊要求的话一路默认就行生成的就是一个标准的用户系统。四、安全红线这个SKILL的核心价值不在省了多少代码而在于把登录鉴权里容易踩的坑固化成了 16 条模块红线生成即遵守密码必须 bcryptcost ≥ 10禁止 MD5/SHA 裸哈希、禁止明文短信验证码用 CSPRNG 生成禁random6 位、5 分钟过期、一次性、60s 防重发、每日每号上限 10 次按场景分键登录和找回互不串用refresh token 不落明文DB 只存 SHA-256 哈希轮换时旧令牌立即作废检测到重放可连带吊销该用户全部令牌登录失败统一文案账号或密码错误禁止区分用户不存在与密码错误防枚举连续失败 5 次锁定 15 分钟找回密码不泄露手机号是否已注册未注册号同样占限流配额统一返回成功否则可凭响应差异枚举手机号JWT payload 只放 sub / jti / exp不放角色权限等可变数据微信登录appid/secret 走环境变量code→openid 走微信jscode2sessionsession_key 不落库、不下发前端禁止前端传明文手机号冒充所有密钥JWT、阿里云 AccessKey、短信签名模板、微信密钥一律走环境变量禁止入库或硬编码。这些规则每一条背后都是真实的事故类型。与其指望每次开发都记得不如让生成器默认就是对的。五、边界SKILL好用的一半原因是它知道自己的边界不实现权限系统。角色、权限、RBAC 一律不做wg_user表不开任何权限列只留一个「当前用户注入」的扩展点——权限交给下游的org-permission-skill。职责单一才不会长成又一个什么都有、什么都改不动的用户中心。不实现 SSO / OAuth2 服务端。第三方登录只做客户端模式后端拿前端传来的 code 向第三方换 openid。不复制已有规范。响应信封、错误码、JWT 工具由 backend-convention-skill 定义本模块只引用不照抄。六、使用示例没有斜杠命令不用记参数自然语言触发帮我加一个用户系统登录 注册 资料管理 现有 FastAPI 项目里加手机号验证码登录要双令牌 做一个 auth 模块账号密码 短信登录开图形验证码和密码找回 帮我做个 uniapp 微信小程序登录要能解析手机号 加个人资料页修改密码、换绑手机号、注销账号交付标准是可运行代码 api-contract.md接口文档同时交付缺一则视为未完成。生成的代码可以直接跑接口文档可以直接给前端。下面是实测案例非常的奈斯高效java为例最终结果清晰可见、注释完整、规范标准并且有数据库初始化文件用起来非常的奈斯。具体细节 和 其他 语言框架就不多介绍了小伙伴们可以尝试下。七、和其他 SKILL 的关系auth-skill不是孤立的它在整套后端 Skill 里的位置上游依赖backend-convention-skill规范和database-skill数据库选型短信通道默认用内置的最小阿里云实现检测到项目已接入notification-skill时委托给它不重复实现下游是org-permission-skill权限和ai-chat-skillAI 对话它们依赖本模块的用户表和当前用户注入。骨架、用户、权限、通知、AI 对话各管一段按需组合。八、小结AI 时代写前端项目很简单写一个简单Demo后端项目也很简单但是要前后端对接、合理选择语言与框架以及数据库设计就相对麻烦了。本SKILL 就是解决这类问题的当然只是一个项目的第一步。但千万不可小瞧这一第一步对于复杂大型项目来说一个安全稳定可靠的鉴权系统可是整个系统稳定和可靠的前提接下来我还会继续拆解具体的业务场景比如 ERP 中权限组织架构模块、电商支付模块、消息中间件模块、日志模块、生产级链路追踪模块以及与AI对接模块等等这些都根据博主自身多年的实战案例而研究得出讲究的就是具有实际性和可用性让小伙伴们VibeCoding开发大型项目的时候不再是没做好业务拆分导致 “一锅大杂烩”而无法维护对这些方面有需求的或者正常往这方面思考的童鞋们千万不要错过。如果使用起来有问题或者对某个模块不清楚的欢迎评论喜欢的童鞋点赞关注后续还会更多硬核实战内容分享一天一个 Skill——一句话生成后端骨架 Java/Python/Nodejs/Go MySQL/MongoDB/PostgreSQL【VibeCoding系列】从0 到1 全面用AI 手搓一个 uniapp 全栈小程序一天一个SKILL——上下文溢出问题的解决妙招 实时计划文档 planning-with-files一天一个SKILL——一句话生成uniapp小程序标准化骨架Claude Code Hooks六大案例从原理源码到工程级自动化落地彻底根治 AI 编程失控