基于腾讯云开发 CloudBase AI ToolKit 构建的认证系统,提供完整的手机号注册、登录功能。
本项目基于 CloudBase AI ToolKit 开发,通过AI提示词和 MCP 协议+云开发,让开发更智能、更高效,支持AI生成全栈代码、一键部署至腾讯云开发(免服务器)、智能日志修复。
本项目提供基于 CloudBase Auth SDK 的手机号验证码注册/登录功能,适用于 Web 应用和小程序场景。代码遵循最佳实践,具有良好的可维护性和扩展性。
cloudbase-auth/ ├── auth/ # 认证模块 │ ├── auth.js # Auth SDK 封装类(核心) │ ├── auth-common.js # 通用工具函数 │ ├── login.js # 登录逻辑 │ ├── register.js # 注册逻辑 │ ├── config.js # CloudBase 配置 │ ├── index.html # 用户中心页面 │ ├── login.html # 登录页面 │ ├── register.html # 注册页面 │ ├── styles.css # 样式文件 │ └── README.md # 模块说明文档 ├── rules/ # AI 规则配置 │ ├── auth-http-api/ # Auth HTTP API 规则 │ ├── auth-nodejs/ # Node.js Auth 规则 │ ├── auth-web/ # Web Auth 规则 │ └── ... ├── .env.example # 环境变量模板 ├── .gitignore # Git 忽略文件配置 ├── package.json # 项目配置和依赖 ├── cloudbaserc.json # CloudBase 配置 ├── CODE_STANDARDS.md # 代码规范文档 └── README.md # 项目说明文档
┌─────────────────────────────────────┐ │ Presentation Layer │ ← HTML/CSS │ (login.html, register.html, ...) │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ Business Logic Layer │ ← JavaScript │ (login.js, register.js, ...) │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ Service Layer │ ← Auth SDK │ (auth.js, auth-common.js) │ └─────────────────────────────────────┘ ↓ ┌─────────────────────────────────────┐ │ CloudBase SDK │ ← CloudBase │ (@cloudbase/js-sdk) │ └─────────────────────────────────────┘
auth.js(核心层)
auth-common.js(工具层)
login.js & register.js(业务层)
用户输入 ↓ 表单验证(auth-common.js) ↓ 业务逻辑(login.js/register.js) ↓ 认证服务(auth.js) ↓ CloudBase SDK ↓ 云端服务
// 全局状态(login.js / register.js)
verifyFunction // 验证函数
countdownTimer // 倒计时定时器
currentPhone // 当前手机号
verifyAttempts // 验证次数
// 单例状态(auth.js)
authInstance // 认证实例
// 临时状态(auth-common.js)
codeSendRecords // 验证码发送记录(频率限制)
确保你已经安装了以下工具:
git clone https://github.com/yunjinhong/cloudbase-auth.git
cd cloudbase-auth
复制环境变量模板并填写配置:
cp .env.example .env
编辑 .env 文件,填写你的 CloudBase 配置:
CLOUDBASE_ENV=hjhsite-4gwrqvh455f57d20 CLOUDBASE_REGION=ap-shanghai CLOUDBASE_ACCESS_KEY=your-publishable-key
publishable key.env 文件的 CLOUDBASE_ACCESS_KEY 字段注意:publishable key 可以安全地暴露在前端代码中,不同于 secret key。
npm run start
npm install -g live-server npm run dev
1. 输入手机号(可选输入昵称) ↓ 2. 点击「获取验证码」 ↓ 3. 查收短信 ↓ 4. 输入6位验证码 ↓ 5. 点击「注册」 ↓ 6. 注册成功,自动登录
1. 输入手机号 ↓ 2. 点击「获取验证码」 ↓ 3. 查收短信 ↓ 4. 输入6位验证码 ↓ 5. 点击「登录」 ↓ 6. 登录成功,跳转到用户中心
const auth = new CloudBaseAuth({
env: 'your-env-id',
region: 'ap-shanghai',
accessKey: 'your-publishable-key'
});
发送手机验证码(注册)
const result = await auth.signUp('13800138000', '张三');
// 返回: { success, verifyFunction, message }
发送手机验证码(登录)
const result = await auth.signInWithOtp('13800138000');
// 返回: { success, verifyFunction, message }
验证验证码
const result = await auth.verifyOtp(verifyFunction, '123456');
// 返回: { success, user, session, message }
获取当前用户信息
const result = await auth.getCurrentUser();
// 返回: { success, user }
退出登录
const result = await auth.signOut();
// 返回: { success, message }
检查登录状态
const state = await auth.checkLoginState();
// 返回: { isLoggedIn, session }
登录成功事件
window.addEventListener('auth:signin', (event) => {
const session = event.detail;
console.log('用户登录:', session);
});
退出登录事件
window.addEventListener('auth:signout', () => {
console.log('用户退出');
});
本项目遵循严格的代码规范,详见 CODE_STANDARDS.md。
运行 ESLint 检查代码质量:
npm run lint
.env 文件提交到 GitA: 请检查:
A: 请在 .env 文件中配置 CLOUDBASE_ACCESS_KEY(publishable key)
A: 在 auth-common.js 中修改 redirectToHome() 函数的跳转地址
A: 修改 auth/styles.css 文件
A: 目前支持手机号验证码登录/注册,可以扩展支持其他登录方式
欢迎贡献代码!请遵循以下步骤:
git checkout -b feature/AmazingFeature)git commit -m 'feat: add some amazing feature')git push origin feature/AmazingFeature)提交消息遵循 Conventional Commits 规范:
feat: 新功能fix: 修复 Bugdocs: 文档更新refactor: 代码重构test: 测试相关chore: 构建/工具相关MIT License
感谢 CloudBase AI ToolKit 提供的强大功能支持。