# QuickLogin **Repository Path**: quick-data/quick-login ## Basic Information - **Project Name**: QuickLogin - **Description**: quick-login的定位是一个快速登录脚手架,具有易上手和兼容性强的特点 - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-09-12 - **Last Updated**: 2025-11-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 介绍 quick-login的定位是一个快速登录脚手架,具有易上手和兼容性强的特点。如果你有以下的场景需要解决,那quick-login将会是一个很不错的选择: (1)新项目需要从零开始搭建鉴权体系; (2)老项目之间需要打通登录体系,实现一套账密登录; (3)项目中引入了类似swagger之类的开源项目,生产环境为了安全性只能在关闭此功能引发的不方便; # maven引入 ## springboot2.x引入下面的包 ``` io.github.xiaoyudeguang quick-login 1.0.2 io.github.xiaoyudeguang quick-request 1.0.2 io.github.xiaoyudeguang easy-openapi 1.0.5 ``` ## springboot3.x引入下面的包 ``` io.github.xiaoyudeguang quick-login 1.0.2 io.github.xiaoyudeguang quick-request-jakarta 1.0.2 io.github.xiaoyudeguang easy-springdoc 1.0.5 ``` # 使用说明 ## 1.基础用法(适用于只做简单登录校验的场景) ### 1.1 yml中配置登录账号 ``` quick-login: permission: - userNo: zhangsan #用户编码 userName: 张三 #用户名 password: 123456 #密码 avatar: http://www.baidu.com #头像地址 mobile: 17696078138 #手机号 role: admin,roleManage #角色 ``` ### 1.2 打开浏览器访问:http://127.0.0.1:8080/login.html?http://www.baidu.com 登陆成功后会跳转到百度 ![输入图片说明](%E7%99%BB%E5%BD%95%E9%A1%B5%E9%9D%A2.png) 也可以通过curl进行登录,登录成功后会将cookie写回: ``` curl --location 'http://127.0.0.1:8080/login/doLogin?userNo=zhangsan&rememberMe=false' \ --header 'Content-Type: application/json' \ --data '{"userNo":"zhangsan","password":"123456"}' ``` ### 1.3 接口鉴权 接口鉴权写法如下: ``` import com.xiaoyudeguang.annotations.RequestMapping; import com.xiaoyudeguang.annotations.RestController; @RestController(value = "/test", tags = "测试接口", author = "光") public class TesTController { @RequestMapping(value = "/test", summary = "鉴权测试", permission = "test") public String test() { return "test"; } } ``` 接口不需要鉴权的写法(permission不设置值也可以实现同样效果): ``` import com.xiaoyudeguang.annotations.RequestMapping; import com.xiaoyudeguang.annotations.RestController; @RestController(value = "/test", tags = "测试接口", author = "光") public class TesTController { @RequestMapping(value = "/test", summary = "鉴权测试", checkAuth = false) public String test() { return "test"; } } ``` ## 2. 自定义登录逻辑和鉴权逻辑(接入已有系统的用户体系和鉴权体系) quick-login的登录和鉴权都是通过LoginService调用IUserService接口来实现的,可以通过自定义LoginService接口或IUserService接口实现类来重写登录和鉴权逻辑: ``` public interface LoginService { /** * 登录 * * @param userNo 账号 * @param password 密码 * @param rememberMe 记住我 * @return * @throws Throwable */ Map doLogin(String userNo, String password, Boolean rememberMe) throws Throwable; /** * 鉴权 * * @param pjp * @return * @throws Throwable */ boolean checkPermission(ProceedingJoinPoint pjp) throws Throwable; } ``` ``` public interface IUserService { /** * 根据账户密码查询用户信息(用户登录) * * @param userNo 账号 * @param password 密码 * @return */ Map getUser(String userNo, String password) throws Throwable; /** * 根据账户查询用户权限 * * @param loginId * @param loginType * @return */ List getPermissionList(Object loginId, String loginType); /** * 根据账户查询用户角色 * * @param loginId * @param loginType * @return */ List getRoleList(Object loginId, String loginType); } ``` # 兼容其他鉴权框架版本 [easy-satoken](https://gitee.com/easy-framework/easy-satoken)