# sso-x **Repository Path**: flgitee/sso-x ## Basic Information - **Project Name**: sso-x - **Description**: CAS单点登录 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-02-09 - **Last Updated**: 2026-02-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![输入图片说明](image.png) # SSO-X 插件 > 确保当前项目使用的是 MySQL + Redis --- ## 一、集成方使用步骤 ### 1. 引入依赖 ```xml com.jmlx sso-x-spring-boot-starter 1.0.0 ``` > **阿里云仓库配置**(setting.xml + pom.xml,见文末附录) `嫌弃麻烦,直接用jar` [sso-x-spring-boot-starter-1.0.0-javadoc.jar](https://gitee.com/flgitee/sso-x/raw/master/src/main/resources/lib/sso-x-spring-boot-starter-1.0.0-javadoc.jar) ### 2. 实现 SsoService 接口 ```java @Service public class SsoServiceImpl implements SsoService { // 绑定用户:返回集成方的用户ID @Override public String bindUser(String clientId, String externalUserId) { return "11"; // 返回你的用户ID } // 登出处理 @Override public void logout(String internalUserId, String clientId) { // 清除本地登录状态 } } ``` ### 3. 启动项目 启动后自动初始化数据库表,将 `client_id`、`redirect_uri`、接口地址提供给第三方即可 (接口地址是第三方规定的,可以提前商定好)。 --- ## 二、第三方平台使用步骤 ### 2.1 发起SSO登录 ```java String url = ssoServerUrl + "/sso-x/authorize" + "?clientId=" + clientId + "&redirectUri=" + redirectUri + "&externalUserId=" + externalUserId; return "redirect:" + url; ``` ### 2.2 接收code换取token ```java @GetMapping("/sso/callback") public String callback(@RequestParam String code, HttpSession session) { // 调用 /sso-x/token 接口换取 accessToken // 保存到 session return "redirect:/"; } ``` ### 2.3 退出登录 ```java // 调用 /sso-x/logout 接口,传入 accessToken 和 clientId ``` --- ## 三、API接口 | 接口 | 方法 | 说明 | |------|------|------| | `/sso-x/authorize` | GET | 获取授权码 | | `/sso-x/token` | POST | 换取访问令牌 | | `/sso-x/logout` | POST | 登出 | --- ## 附录:阿里云仓库配置 ### 1. setting.xml ```xml 2396597-release-ma4xKf 5f63471e18c17e7748aa1523 9KGjYK(2eWs) rdc 2396597-release-ma4xKf https://packages.aliyun.com/maven/repository/2396597-release-ma4xKf true true rdc ``` ### 2. pom.xml ```xml 2396597-release-ma4xKf https://packages.aliyun.com/maven/repository/2396597-release-ma4xkf true false ```