SDU棋界精灵——web用户端设计

一、登陆注册页面

1. 前端页面结构

  • 登录页面 (login.vue)

    • 核心组件:使用 el-input 实现用户名、密码、验证码输入框。

    • 验证码模块:通过 <img> 标签显示动态验证码图片,支持点击刷新。

    • 表单提交:点击“登录”按钮触发 login 方法,完成输入校验与API调用。

    • 跳转逻辑:提供“注册”链接,点击后跳转至 /register

login() {
  // 输入校验
  if (!this.form.username.trim()) {
    showDanger("用户名不能为空");
    return;
  }
  // 调用API
  Api.user.login(this.form, ({ data }) => {
    if (data.code === 0) {
      showSuccess("登录成功!");
      goToPage("/home");
    } else {
      showDanger(data.msg);
    }
  });
}
  • 注册页面 (register.vue)

    • 新增字段:在登录页基础上增加“确认密码”输入框。

    • 密码一致性校验:检查两次输入的密码是否一致。

    • 表单提交:点击“立即注册”按钮触发 register 方法,调用注册接口。

register() {
  if (this.form.password !== this.form.confirmPassword) {
    showDanger("密码不一致");
    return;
  }
  Api.user.register(this.form, ({ data }) => {
    if (data.code === 0) {
      showSuccess("注册成功");
      goToPage("/login");
    }
  });
}

2. 输入验证逻辑

非空校验:使用 trim() 去除输入值的空格,若为空则通过 showDanger 显示错误提示。

if (!this.form.username.trim()) {
  showDanger("用户名不能为空");
  return;
}

密码一致性校验(仅注册页):

if (this.form.password !== this.form.confirmPassword) {
  showDanger("两次输入的密码不一致");
  return;
}

3. API请求与后端交互

  • 接口定义:在 user.js 中封装以下关键接口:

    • 登录POST /api/v1/user/login

    • 注册POST /api/v1/user/register

    • 获取验证码GET /api/v1/user/captcha

    • 获取用户信息GET /api/v1/user/info

  • 请求工具:通过 httpRequest.js 的 sendRequest 方法统一管理请求配置:

    • 自动携带 Token:从 localStorage 读取 TOKEN 并添加到请求头。

    • 错误统一处理:响应状态码非 200 时,自动跳转登录页或提示错误。

  • 验证码实现

    • 生成 UUID:使用 getUUID() 生成唯一标识,作为验证码请求参数。

    • Blob 处理:将验证码图片的二进制响应转换为可展示的 URL:

const blob = new Blob([res.data], { type: res.data.type });
this.captchaUrl = URL.createObjectURL(blob);

4. Token 管理与认证

登录成功处理:后端返回 TOKEN

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值