# 短信登录API接口说明 ## 接口概述 本文档描述了短信验证码登录相关的API接口,包括获取验证码和短信登录功能。 ## 基础配置 - 开发环境: `https://dev-app.igandan.com` - 生产环境: `https://app.igandan.com` - 请求头: `Authorization: Bearer {token}` (登录接口不需要) ## API接口列表 ### 1. 获取短信验证码 **接口地址:** `/expertAPI/getSmsCode` **请求方法:** `POST` **请求参数:** ```json { "phone": "13800138000" } ``` **响应格式:** ```json { "code": 200, "message": "验证码发送成功", "data": null } ``` **错误响应:** ```json { "code": 400, "message": "手机号格式错误", "data": null } ``` ### 2. 短信验证码登录 **接口地址:** `/expertAPI/umSmsLogin` **请求方法:** `POST` **请求参数:** ```json { "phone": "13800138000", "code": "123456" } ``` **响应格式:** ```json { "code": 200, "message": "登录成功", "data": { "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "userInfo": { "userId": "12345", "phone": "13800138000", "nickname": "用户昵称", "avatar": "头像URL" } } } ``` **错误响应:** ```json { "code": 400, "message": "验证码错误", "data": null } ``` ## 使用流程 ### 1. 获取验证码 1. 用户输入手机号 2. 点击"获取验证码"按钮 3. 前端验证手机号格式 4. 调用获取验证码API 5. 开始60秒倒计时 ### 2. 短信登录 1. 用户输入手机号和验证码 2. 点击"登录"按钮 3. 前端验证输入内容 4. 调用短信登录API 5. 保存token和用户信息 6. 跳转到首页 ## 前端实现要点 ### 验证码倒计时 ```javascript // 开始倒计时 isCountingDown.value = true; countdown.value = 60; const timer = setInterval(() => { countdown.value--; if (countdown.value <= 0) { clearInterval(timer); isCountingDown.value = false; } }, 1000); ``` ### 登录状态管理 ```javascript // 保存认证信息 if (result.data.data && result.data.data.token) { uni.setStorageSync('AUTH_TOKEN_App', result.data.data.token); if (result.data.data.userInfo) { uni.setStorageSync('USER_INFO', result.data.data.userInfo); } } ``` ### 错误处理 ```javascript try { const result = await api.smsLogin({ phone: phoneNumber.value, code: smsCode.value }); if (result.data.code === 200) { // 登录成功处理 } else { // 显示错误信息 uni.showToast({ title: result.data.message || '登录失败', icon: 'none' }); } } catch (error) { // 网络错误处理 uni.showToast({ title: '登录失败,请重试', icon: 'none' }); } ``` ## 注意事项 1. **手机号验证**: 前端需要验证手机号格式(11位数字,以1开头) 2. **验证码长度**: 验证码通常为6位数字 3. **倒计时控制**: 防止用户频繁点击获取验证码 4. **协议同意**: 登录前必须同意用户协议 5. **错误提示**: 提供清晰的错误信息给用户 6. **安全考虑**: 验证码有效期限制,防止暴力破解 ## 测试建议 1. 使用真实手机号测试验证码发送 2. 测试各种错误情况(错误验证码、过期验证码等) 3. 测试网络异常情况 4. 验证登录成功后的跳转逻辑 5. 测试token存储和用户信息保存