books/pages/login/login.vue)books/pages/register/register.vue)POST /api/user/register)users 表CREATE TABLE `users` (
`id` INT(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
`username` VARCHAR(50) NOT NULL COMMENT '用户名',
`nickname` VARCHAR(50) DEFAULT NULL COMMENT '昵称',
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '头像URL',
`phone` VARCHAR(20) DEFAULT NULL COMMENT '手机号',
`email` VARCHAR(100) DEFAULT NULL COMMENT '邮箱',
`password` VARCHAR(255) NOT NULL COMMENT '密码(MD5加密)',
`is_vip` TINYINT(1) DEFAULT 0 COMMENT '是否VIP:0-否,1-是',
`vip_expire_time` DATETIME DEFAULT NULL COMMENT 'VIP过期时间',
`status` TINYINT(1) DEFAULT 1 COMMENT '状态:0-禁用,1-启用',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `uk_username` (`username`),
KEY `idx_phone` (`phone`),
KEY `idx_email` (`email`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';
打开登录页面
填写注册信息
提交注册
注册成功
请求地址:POST /api/user/register
请求头:
Content-Type: application/json
请求参数:
{
"username": "testuser", // 必填,用户名
"password": "123456", // 必填,密码(6-20位)
"nickname": "测试用户", // 可选,昵称
"phone": "13800138000", // 可选,手机号
"email": "test@example.com" // 可选,邮箱
}
响应示例:
{
"code": 200,
"message": "注册成功",
"data": {
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"avatar": null,
"phone": "13800138000",
"email": "test@example.com",
"isVip": false,
"status": 1
}
}
错误响应:
{
"code": 500,
"message": "用户名已存在",
"data": null
}
cd book
mvn spring-boot:run
在微信开发者工具中打开 books 项目
打开登录页面
点击注册链接
填写注册信息
testuser123456123456测试用户(可选)13800138000(可选)test@example.com(可选)提交注册
登录测试
用户名已存在
密码长度不符合要求
两次密码不一致
手机号格式错误
邮箱格式错误
密码加密:密码使用MD5加密存储,前端传输的是明文密码
唯一性检查:
空值处理:
数据验证:
安全性:
密码强度验证:添加密码强度检查(包含字母、数字等)
验证码:添加图形验证码或短信验证码
邮箱验证:注册后发送验证邮件
手机号验证:注册时发送短信验证码
密码加密升级:使用BCrypt等更安全的加密方式
注册协议:添加用户协议和隐私政策
第三方注册:支持微信、QQ等第三方注册
创建时间:2024年 最后更新:2024年