{"id":13841195,"url":"https://github.com/cdk8s/tkey","last_synced_at":"2025-07-11T12:30:25.804Z","repository":{"id":39886345,"uuid":"202819236","full_name":"cdk8s/tkey","owner":"cdk8s","description":"以材料最全、示例最多为目标的单点登录系统（SSO）","archived":false,"fork":false,"pushed_at":"2023-12-17T03:27:41.000Z","size":166,"stargazers_count":347,"open_issues_count":3,"forks_count":88,"subscribers_count":20,"default_branch":"master","last_synced_at":"2024-09-16T03:29:00.279Z","etag":null,"topics":["login","login-oauth","login-system","oauth2","oauth2-authentication","oauth2-server","sso","sso-authentication","sso-login"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cdk8s.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2019-08-17T01:07:06.000Z","updated_at":"2024-08-23T12:01:22.000Z","dependencies_parsed_at":"2024-04-12T15:03:42.503Z","dependency_job_id":"937472ce-77fb-411a-96c5-693f0022c8dd","html_url":"https://github.com/cdk8s/tkey","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdk8s%2Ftkey","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdk8s%2Ftkey/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdk8s%2Ftkey/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cdk8s%2Ftkey/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cdk8s","download_url":"https://codeload.github.com/cdk8s/tkey/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225720397,"owners_count":17513596,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["login","login-oauth","login-system","oauth2","oauth2-authentication","oauth2-server","sso","sso-authentication","sso-login"],"created_at":"2024-08-04T17:01:04.184Z","updated_at":"2024-11-21T11:30:22.647Z","avatar_url":"https://github.com/cdk8s.png","language":"Java","funding_links":[],"categories":["Java","Java (504)"],"sub_categories":[],"readme":"## 重要通知\n\n- 2019-12 基于 TKey 基础上的单体完整系统已经建立，需要继续扩展学习的可以查看：[Github](https://github.com/cdk8s/sculptor-boot-generator) [Gitee](https://Gitee.com/cdk8s/sculptor-boot-generator)\n\n## 只有上云才能撑住规模化后的发展\n\n- 初期技术选型上尽可能寻找云支持的\n- 在公司规模小，自建服务基本都做不到 99.999% 高可用\n- 在公司规模发展变迅速时，如果云技术和已有技术契合，迁移成本会低很多很多\n- 目前暂定只选择：[阿里云服务](https://www.aliyun.com/minisite/goods?userCode=v2zozyxz)\n- 这里罗列了阿里云常用的一些：[产品](https://github.com/cdk8s/cdk8s-team-style/blob/master/ops/aliyun.md)\n\n## Introduction\n\n- **TKey = Token Key** 以 OAuth 2.0 标准为接口设计原则的单点登录系统（SSO）\n- **初衷：**\n    - 做国内各种登录场景的配件，以完善的学习资料为主核心竞争力\n    - 希望让有 1 ~ 2 年工作经验的人都可以用 TKey 进行自定义扩展需求\n- 纯粹的 HTTP，任意设备、任意场景\n- 跨域无状态，随意横向扩展，服务高可用\n- Spring Boot 2.1.x 技术栈，没有封装，有一点点基础即刻魔改（MIT License）\n- 从开发、测试、部署、监控、前后端分离的材料都已具备\n- **最后：没有哪个框架、系统可以套用在任意用户、任意场景、任意需求上，希望对你有思路帮助**\n\n## Git\n\n- Github：\u003chttps://github.com/cdk8s/tkey\u003e\n- Gitee：\u003chttps://gitee.com/cdk8s/tkey\u003e\n\n## Live Demo\n\n![登陆完整过程](http://img.gitnavi.com/tkey/tkey-sso-login.gif)\n\n- **注意：带宽只有 1M，访问会慢** \n- 一共3个完整系统：\n    - 第一个是后台管理系统，包含用户管理：\u003chttp://180.76.142.211/sculptor-boot-frontend/index\u003e\n    - 第二个是演示系统Client-1：\u003chttp://180.76.142.211/client-rest-1/user\u003e\n    - 第三个是演示系统Client-2：\u003chttp://180.76.142.211/client-rest-2/user\u003e\n- 同一个浏览器同时访问三个站点会发现都需要跳去登录，表明三个系统链接都是需要登录才可以访问\n- 先登录第一个系统\n- 然后访问第二个系统、第三个系统会发现直接返回用户 JSON 信息\n\n## Architecture\n\n![架构图](http://img.gitnavi.com/tkey/tkey-sso-architecture.jpg)\n\n- 上图的视频讲解：[B 站](https://www.bilibili.com/video/av65883281/)、[腾讯视频](https://v.qq.com/x/page/e0920wdqe7v.html)\n- OAuth2.0 授权码模式细节时序图可以查看：[点击我查看](http://img.gitnavi.com/tkey/tkey-oauth.png)\n\n## Preview（Gif）\n\n- 主图需要右键复制地址，然后粘贴到地址栏才能打开 Orz..\n- **登录完整过程：** [主图](https://upload-images.jianshu.io/upload_images/19119711-cd483cefb50eb763.gif)、[备图](http://img.gitnavi.com/tkey/tkey-sso-login.gif)\n- **Grafana 监控大屏：** [主图](https://upload-images.jianshu.io/upload_images/19119711-af9b3d3411db1da1.gif)、[备图](http://img.gitnavi.com/tkey/actuator-prometheus-grafana.gif)\n- **GoAccess 监控大屏：** [主图](https://upload-images.jianshu.io/upload_images/19119711-b3bcc4edcf0df007.gif)、[备图](http://img.gitnavi.com/tkey/goaccess-data.gif)\n- **Postman 接口调用：** [主图](https://upload-images.jianshu.io/upload_images/19119711-a8316b794bf4bf56.gif)、[备图](http://img.gitnavi.com/tkey/postman-request-api.gif)\n- **Docker 容器管理：** [主图](https://upload-images.jianshu.io/upload_images/19119711-281dd6b40f2d7fc7.gif)、[备图](http://img.gitnavi.com/tkey/portainer-docker.gif)\n- **Jenkins 部署流水线：** [主图](https://upload-images.jianshu.io/upload_images/19119711-2d20e2fba98ddbbd.gif)、[备图](http://img.gitnavi.com/tkey/tkey-jenkins.gif)\n- **JProfiler 压测变化：** [主图](https://upload-images.jianshu.io/upload_images/19119711-922b8202de206b06.gif)、[备图](http://img.gitnavi.com/tkey/tkey-jprofiler.gif)\n- **VisualVM 压测变化：** [主图](https://upload-images.jianshu.io/upload_images/19119711-067bcdf1a6e95b44.gif)、[备图](http://img.gitnavi.com/tkey/tkey-visualvm.gif)\n\n\n## Quick Start\n\n- 单元测试：[主图](https://upload-images.jianshu.io/upload_images/19119711-6bc18bb5b1063911.gif)、[备图](http://img.gitnavi.com/tkey/tkey-junit-test.gif)\n- TKey SSO Server JAR 方式部署过程：[主图](https://upload-images.jianshu.io/upload_images/19119711-72e375355e3df651.gif)、[备图](http://img.gitnavi.com/tkey/tkey-runapp-jar.gif)\n- TKey SSO Server Docker Compose：[主图](https://upload-images.jianshu.io/upload_images/19119711-10011adf8a15e049.gif)、[备图](http://img.gitnavi.com/tkey/tkey-sso-server-docker-compose.gif)\n- TKey SSO Client Management Docker Compose：[主图](https://upload-images.jianshu.io/upload_images/19119711-8edd4a914ed4540a.gif)、[备图](http://img.gitnavi.com/tkey/tkey-sso-client-management-docker-compose.gif)\n- 项目完全依赖 Lombok（推荐），如果没有用过可以参考 [该篇文章](https://github.com/cdk8s/cdk8s-team-style/blob/master/dev/backend/java/java-lombok.md)\n- 项目最优搭配 IntelliJ IDEA，如果还没用过可以参考 [该系列文章（我们的作品）](https://github.com/judasn/IntelliJ-IDEA-Tutorial)\n- Maven 中央仓库已经申请下来，大家现在可以直接使用我们自己封装的 REST API 客户端了\n\n## Documentation\n\n- 我们统一了 TKey 项目的所有文档，方便大家查看\n    - Github：\u003chttps://github.com/cdk8s/tkey-docs\u003e\n    - Gitee：\u003chttps://gitee.com/cdk8s/tkey-docs\u003e\n    - Gitbook：\u003chttps://160668873.gitbook.io/tkey-docs/\u003e\n- **认识阶段 （必读）**\n    - 单点登录系统认知与基础介绍：[Github](https://github.com/cdk8s/tkey-docs/blob/master/other/tkey-baisc.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/other/tkey-baisc.md)\n    - 故意设计点（常见问题）：[Github](https://github.com/cdk8s/tkey-docs/blob/master/faq/README.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/faq/README.md)\n    - 项目结构与端口占用：[Github](https://github.com/cdk8s/tkey-docs/blob/master/other/project-structure.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/other/project-structure.md)\n    - OAuth2.0 四种模式：[Github](https://github.com/cdk8s/tkey-docs/blob/master/server/oauth-grant-type/README.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/server/oauth-grant-type/README.md)\n    - JAR 方式部署：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/jar-runapp.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/jar-runapp.md)\n    - Docker 方式部署：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/docker-runapp.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/docker-runapp.md)\n    - Docker Compose 方式部署：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/docker-compose-runapp.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/docker-compose-runapp.md)\n- TKey Server 开发阶段\n    - 开发改造引导：[Github](https://github.com/cdk8s/tkey-docs/blob/master/server/dev.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/server/dev.md)\n- TKey Management 开发阶段（也是前后端分离的最佳实践示例）\n    - 后端开发改造引导：[Github](https://github.com/cdk8s/tkey-docs/blob/master/management/dev-backend.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/management/dev-backend.md)\n    - 前端开发改造引导：[Github](https://github.com/cdk8s/tkey-docs/blob/master/management/dev-frontend.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/management/dev-frontend.md)\n- TKey Client Java 开发阶段\n    - 自己封装的 REST Client：[Github](https://github.com/cdk8s/tkey-docs/blob/master/client/dev-rest-client.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/client/dev-rest-client.md)\n    - Spring Security 支持：[Github](https://github.com/cdk8s/tkey-docs/blob/master/client/dev-spring-security-client.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/client/dev-spring-security-client.md)\n- 测试阶段\n    - 单元测试：[Github](https://github.com/cdk8s/tkey/blob/master/src/test/java/com/cdk8s/tkey/server/controller/AuthorizationCodeByFormTest.java)、[Gitee](https://gitee.com/cdk8s/tkey/blob/master/src/test/java/com/cdk8s/tkey/server/controller/AuthorizationCodeByFormTest.java)\n    - 压力测试：[Github](https://github.com/cdk8s/tkey-docs/blob/master/test/performance.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/test/performance.md)\n- 部署阶段\n    - 生产注意事项：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/production-environment.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/production-environment.md)\n    - 部署环境搭建：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/deployment-core.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/deployment-core.md)\n- 监控阶段\n    - Spring Boot Micrometer：[Github](https://github.com/cdk8s/tkey-docs/blob/master/deployment/micrometer.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/deployment/micrometer.md)\n    - 其他工具全在 `部署环境搭建`，请自行查看\n- 线上问题诊断\n    - [Actuator 在线修改 log 输出级别（Gif 动图）](http://img.gitnavi.com/tkey/actuator-update-log-level.gif)\n    - [Arthas 诊断 Docker 应用](https://alibaba.github.io/arthas/docker.html#dockerjava)\n    - 夜间开放端口，挑选流量远程 Debug：[Github](https://github.com/cdk8s/tkey-docs/blob/master/server/remote-debug.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/server/remote-debug.md)\n\n\n## TKey Client\n\n- Java 前后端分离最佳实践\n    - TKey SSO Client Management Backend：[Github](https://github.com/cdk8s/tkey-management)、[Gitee](https://gitee.com/cdk8s/tkey-management)\n    - TKey SSO Client Management Frontend：[Github](https://github.com/cdk8s/tkey-management-frontend)、[Gitee](https://gitee.com/cdk8s/tkey-management)\n    - Angular、Vue 的前后端分离版本会在稍后几周发出来\n- Java REST API 客户端：[Github](https://github.com/cdk8s/tkey-client-java)、[Gitee](https://gitee.com/cdk8s/tkey-client-java)\n- Java Spring Security 客户端：[Github](https://github.com/cdk8s/tkey-client-java-spring-security)、[Gitee](https://gitee.com/cdk8s/tkey-client-java-spring-security)\n- C#（暂缺）\n- GO（暂缺）\n- PHP（暂缺）\n- Python（暂缺）\n- Ruby（暂缺）\n- Node.js（暂缺）\n\n## Share\n\n- Grafana Dashboard：[Github](https://github.com/cdk8s/tkey-docs/blob/master/share-file/grafana/dashboard.json)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/share-file/grafana/dashboard.json)\n- Postman API：[Github](https://github.com/cdk8s/tkey-docs/blob/master/share-file/postman/tkey-sso-server-api_collection_2.1_format.json)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/share-file/postman/tkey-sso-server-api_collection_2.1_format.json)\n- Run JAR Shell：[Github](https://github.com/cdk8s/tkey-docs/blob/master/share-file/shell/runapp.sh)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/share-file/shell/runapp.sh)\n\n\n## Roadmap\n\n- 规划版本：[Github](https://github.com/cdk8s/tkey-docs/blob/master/roadmap/README.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/roadmap/README.md)\n\n## Changelog\n\n- 版本更新：[Github](https://github.com/cdk8s/tkey-docs/blob/master/changelog/README.md)、[Gitee](https://gitee.com/cdk8s/tkey-docs/blob/master/changelog/README.md)\n\n\n## Issues\n\n- 目前只开放了一个 issues 入口，集中问题，可以方便大家检索。\n- 去提问：[Github](https://github.com/cdk8s/tkey-issues)、[Gitee](https://gitee.com/cdk8s/tkey-issues)\n\n## Contributors\n\n- 暂无\n- 欢迎 pull request\n\n## Adopters\n\n- 去申请：[Github](https://github.com/cdk8s/tkey-issues/issues/1)、[Gitee](https://gitee.com/cdk8s/tkey-issues/issues/1)\n- 以企业角色联系我进行咨询有优先权，我们会花更多耐心进行讲解和帮助\n- 所以，请在加好友之后先表明公司、立场\n\n\n## Sponsors\n\n- 暂无\n\n## Backer\n\n- [我要喝喜茶 Orz..](http://www.youmeek.com/donate/)\n\n\n## Join\n\n- 邮箱：`cdk8s#qq.com`\n- 博客：\u003chttps://cdk8s.github.io/\u003e\n- Github：\u003chttps://github.com/cdk8s\u003e\n- Gitee：\u003chttps://gitee.com/cdk8s\u003e\n- 公众号\n\n![公众号](http://img.gitnavi.com/markdown/cdk8s_qr_300px.png)\n\n\n## Jobs\n\n- 我们在广州\n- 有广州或深圳的合作、Offer 欢迎联系我们\n- 邮箱：`cdk8s#qq.com`\n- 公众号：`联系我们`\n\n## Thanks\n\n- [IntelliJ IDEA](https://www.jetbrains.com/idea/)\n- [CAS](https://github.com/apereo/cas)\n- [Okta](https://www.okta.com/)\n\n\n## Copyright And License\n\n- Copyright (c) CDK8S. All rights reserved.\n- Licensed under the **MIT** license.\n- **再次强调： 因为是 MIT 协议，大家有不满意的，除了 PR 也可以 fork 后自己尽情改造!**\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdk8s%2Ftkey","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcdk8s%2Ftkey","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcdk8s%2Ftkey/lists"}