跳到主要内容

系统模块

系统模块(blog-module-system)是整个博客系统的核心基础模块,提供用户管理、角色权限、认证授权等功能。

模块概述

特性说明
模块名称blog-module-system
子模块blog-system-api, blog-system-service
核心功能用户、角色、认证
数据表sys_user, sys_role, sys_user_role

架构设计

blog-module-system/
├── blog-system-api/ # API 层
│ ├── dto/ # 数据传输对象
│ │ ├── LoginDTO.java
│ │ ├── RegisterDTO.java
│ │ ├── UserDTO.java
│ │ └── RoleDTO.java
│ ├── vo/ # 视图对象
│ │ ├── LoginVO.java
│ │ ├── UserVO.java
│ │ └── RoleVO.java
│ └── interfaces/ # 服务接口

└── blog-system-service/ # Service 层
├── controller/ # REST 控制器
│ ├── AuthController.java # 认证:注册、登录、登出
│ ├── UserController.java # 用户管理
│ └── RoleController.java # 角色管理
├── service/ # 业务服务
│ ├── IUserService.java
│ ├── IRoleService.java
│ └── impl/
├── entity/ # 实体类
│ ├── User.java
│ ├── Role.java
│ └── UserRole.java
├── mapper/ # MyBatis Mapper
└── converter/ # MapStruct 转换器

核心功能

1. 用户认证

API方法路径说明
注册POST/api/v1/auth/register用户注册
登录POST/api/v1/auth/login获取 JWT Token
登出POST/api/v1/auth/logout用户登出

认证流程:

  1. 用户提交用户名和密码
  2. 验证凭证成功后生成 JWT Token
  3. 客户端保存 Token,后续请求携带 Authorization: Bearer {token}
  4. Spring Security 拦截器验证 Token 有效性

2. 用户管理

API方法路径权限
获取当前用户GET/api/v1/users/meUser
更新个人资料PUT/api/v1/users/meUser
获取用户详情GET/api/v1/users/{id}Admin
更新用户PUT/api/v1/users/{id}Admin
删除用户DELETE/api/v1/users/{id}Admin

3. 角色管理

API方法路径权限
创建角色POST/api/v1/rolesAdmin
获取角色GET/api/v1/roles/{id}Admin
更新角色PUT/api/v1/roles/{id}Admin
删除角色DELETE/api/v1/roles/{id}Admin
分配角色POST/api/v1/roles/{roleId}/users/{userId}Admin
移除角色DELETE/api/v1/roles/{roleId}/users/{userId}Admin

数据模型

用户表 (sys_user)

字段类型说明
idBIGINT主键(雪花算法)
usernameVARCHAR(50)用户名(唯一)
passwordVARCHAR(100)密码(BCrypt 加密)
emailVARCHAR(100)邮箱(唯一)
nicknameVARCHAR(50)昵称
avatarVARCHAR(255)头像 URL
statusTINYINT状态:0=禁用, 1=启用

角色表 (sys_role)

字段类型说明
idBIGINT主键
role_nameVARCHAR(50)角色名称
role_keyVARCHAR(50)角色标识(如 ADMIN)
descriptionVARCHAR(200)描述
statusTINYINT状态

用户角色关联表 (sys_user_role)

字段类型说明
user_idBIGINT用户 ID
role_idBIGINT角色 ID

安全配置

系统使用 Spring Security 6 + JWT 实现无状态认证:

  • JWT 有效期: 2 小时(可配置)
  • 密码加密: BCrypt
  • 角色前缀: ROLE_(Spring Security 自动添加)

相关文档