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