uniapp-app/README_API.md
2025-08-15 17:50:07 +08:00

3.3 KiB
Raw Permalink Blame History

短信登录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. 获取验证码

  1. 用户输入手机号
  2. 点击"获取验证码"按钮
  3. 前端验证手机号格式
  4. 调用获取验证码API
  5. 开始60秒倒计时

2. 短信登录

  1. 用户输入手机号和验证码
  2. 点击"登录"按钮
  3. 前端验证输入内容
  4. 调用短信登录API
  5. 保存token和用户信息
  6. 跳转到首页

前端实现要点

验证码倒计时

// 开始倒计时
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'
  });
}

注意事项

  1. 手机号验证: 前端需要验证手机号格式11位数字以1开头
  2. 验证码长度: 验证码通常为6位数字
  3. 倒计时控制: 防止用户频繁点击获取验证码
  4. 协议同意: 登录前必须同意用户协议
  5. 错误提示: 提供清晰的错误信息给用户
  6. 安全考虑: 验证码有效期限制,防止暴力破解

测试建议

  1. 使用真实手机号测试验证码发送
  2. 测试各种错误情况(错误验证码、过期验证码等)
  3. 测试网络异常情况
  4. 验证登录成功后的跳转逻辑
  5. 测试token存储和用户信息保存