本页导航
menu
认证模块
AI摘要
Spring Boot 3认证模块是一个集成方便的用户认证和权限管理组件,支持基于注解的权限校验和路径过滤,内置多种用户角色。通过简单配置和依赖添加即可使用,提供了丰富的服务接口支持用户注册、登录、登出、密码管理及权限判断等功能,支持扩展和自定义认证逻辑,帮助开发者快速构建安全的应用认证体系。
Spring Boot 3 认证模块
简介
liyao-spring-boot3-starter-auth 是一个基于 Spring Boot 3 的认证组件,提供了用户认证、权限校验等功能,可以快速集成到 Spring Boot 3 项目中,简化认证和授权的开发工作。
功能特性
- 用户登录认证
- 基于注解的权限校验
- 可配置的路径过滤
- 支持用户角色管理
- 与 Spring Boot 3 无缝集成
安装方法
info
依赖可能非最新版本,请前往maven获取最新版本
1、在项目的 pom.xml 文件中添加以下依赖
<dependency>
<groupId>io.github.liyao52033</groupId>
<artifactId>liyao-spring-boot3-starter-auth</artifactId>
<version>1.2.0</version>
</dependency>
2、创建数据库表
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for user
-- ----------------------------
DROP TABLE IF EXISTS `user`;
CREATE TABLE `user` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
`userAccount` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '账号',
`userPassword` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '1442de8d3dfff7f35f2a5f7c108b02b6' COMMENT '密码',
`userRole` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT 'user' COMMENT '用户角色:user/admin/ban',
`accessKey` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户密钥',
`secretKey` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '服务密钥',
`userAvatar` varchar(1024) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT 'https://aurora-1258839075.cos.ap-shanghai.myqcloud.com/user_avatar/1680499436154834947/sHPQruWl-1696599833532.jpg' COMMENT '用户头像',
`userProfile` varchar(512) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '一个人的价值,不在于他拥有什么,而在于他能够为别人做些什么。”这句话强调了帮助和服务他人的重要性,不断地为他人奉献可以增加你的人生价值。' COMMENT '用户简介',
`unionId` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '微信开放平台id',
`mpOpenId` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '公众号openId',
`userName` varchar(256) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '用户昵称',
`createTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`updateTime` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
`isDelete` tinyint NOT NULL DEFAULT 0 COMMENT '是否删除',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_unionId`(`unionId` ASC) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1896739267784413188 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '用户' ROW_FORMAT = DYNAMIC;
SET FOREIGN_KEY_CHECKS = 1;
配置说明
在 application.yml 中添加以下配置:
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/demo
username: xxxx
password: xxxxx
mybatis-plus:
configuration:
map-underscore-to-camel-case: false
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
mapper-locations: classpath*:mapper/*.xml
global-config:
db-config:
logic-delete-field: isDelete # 全局逻辑删除的实体字段名
logic-delete-value: 1 # 逻辑已删除值(默认为 1)
logic-not-delete-value: 0 # 逻辑未删除值(默认为 0)
liyao:
auth:
# 是否启用认证模块,默认为 true
enabled: true
# 允许直接访问的路径列表,不需要登录验证
allowed-paths:
- /api/public/**
- /api/health/**
使用示例
_1. 用户登录认证
认证模块会自动拦截需要认证的请求,默认情况下,除了配置的 allowed-paths 和内置的一些路径(如 Swagger、登录注册接口等)外,其他接口都需要登录后才能访问。
_2. 基于注解的权限校验
使用 @AuthCheck 注解可以对方法进行权限校验:
加载中...
最后更新于 2025-10-02 15:34