TKey SSO 单点登录系统介绍
Introduction
- TKey = Token Key 以 OAuth 2.0 标准为接口设计原则的单点登录系统(SSO)
- 初衷: 做国内各种登录场景的配件,以完善的学习资料为主核心竞争力
- 纯粹的 HTTP,任意设备、任意场景
- 跨域无状态,随意横向扩展,服务高可用
- Spring Boot 2.1.x 技术栈,没有封装,有一点点基础即刻魔改(MIT License)
- 从开发、测试、部署、监控、前后端分离的材料都已具备
- 最后:没有哪个框架、系统可以套用在任意用户、任意场景、任意需求上,希望对你有思路帮助
Git
Live Demo
(登陆完整过程)
- 注意:带宽只有 1M,访问会慢
- 本地添加下面 hosts 才能正常访问
182.61.44.40 sso.cdk8s.com
Architecture
(架构图)
- 上图的视频讲解稍后会上传到 B 站
- OAuth2.0 授权码模式细节时序图可以查看:点击我查看
Preview(Gif)
- 主图需要右键复制地址,然后粘贴到地址栏才能打开 Orz..
- 登录完整过程: 主图、备图
- Grafana 监控大屏: 主图、备图
- GoAccess 监控大屏: 主图、备图
- Postman 接口调用: 主图、备图
- Docker 容器管理: 主图、备图
- Jenkins 部署流水线: 主图、备图
- JProfiler 压测变化: 主图、备图
- VisualVM 压测变化: 主图、备图
Quick Start
- 单元测试:主图、备图
- TKey SSO Server JAR 方式部署过程:主图、备图
- TKey SSO Server Docker Compose:主图、备图
- TKey SSO Client Management Docker Compose:主图、备图
- 项目完全依赖 Lombok(推荐),如果没有用过可以参考 该篇文章
- 项目最优搭配 IntelliJ IDEA,如果还没用过可以参考 该系列文章(我们的作品)
- 由于项目刚开源出来,Maven 官方库还在申请,自己封装的 TKey SSO Client Java 还在审核,目前大家先本地 package install
Documentation
- 我们统一了 TKey 项目的所有文档,方便大家查看
- 认识阶段 (必读)
- TKey Server 开发阶段
- TKey Management 开发阶段(也是前后端分离的最佳实践示例)
- TKey Client Java 开发阶段
- 测试阶段
- 部署阶段
- 监控阶段
- 线上问题诊断
- Actuator 在线修改 log 输出级别(Gif 动图)
- Arthas 诊断 Docker 应用
- 夜间开放端口,挑选流量远程 Debug:Github、Gitee
TKey Client
- Java 前后端分离最佳实践
- Java REST API 客户端:Github、Gitee
- Java Spring Security 客户端:Github、Gitee
- C#(暂缺)
- GO(暂缺)
- PHP(暂缺)
- Python(暂缺)
- Ruby(暂缺)
- Node.js(暂缺)
Share
Roadmap
Changelog
Issues
Contributors
- 暂无
- 欢迎 pull request
Adopters
Sponsors
- 暂无
Backer
Join
- 邮箱:
cdk8s#qq.com - 博客:https://cdk8s.github.io/
- Github:https://github.com/cdk8s
- Gitee:https://gitee.com/cdk8s
- 公众号
(公众号)
Jobs
- 我们在广州
- 有广州或深圳的合作、Offer 欢迎联系我们
- 邮箱:
cdk8s#qq.com - 公众号:
联系我们
Thanks
Copyright And License
- Copyright (c) CDK8S. All rights reserved.
- Licensed under the MIT license.
- 再次强调: 因为是 MIT 协议,大家有不满意的,除了 PR 也可以 fork 后自己尽情改造!
TKey SSO 单点登录系统介绍的更多相关文章
- 使用 JSONP 实现简单的 SSO 单点登录
SSO 即 Single Sign On(单点登录). 一.二级域名之间的单点登录 不需要用到JSONP 或者 p3p 协议,直接使用 COOKIE 就行了,因为顶级域名相同就能实现 COOKIE ...
- CAS实现SSO单点登录原理
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- [sso] 单点登录认证流程
一.流程说明 第一步:访问cas过滤链接ssoLogin,拼凑定向到 CAS_SERVER 获取ticket的URL 第二步:CAS_SERVER校验用户信息,生成Ticket 第三步:重新定向到访问 ...
- php sso单点登录原理阐述
原理:就是用户登录了单点登录系统(sso)之后,就可以免登录形式进入相关系统: 实现: 点击登录跳转到SSO登录页面并带上当前应用的callback地址 登录成功后生成COOKIE并将COOKIE传给 ...
- SSO单点登录之跨域问题
第一次写博客,与大家共勉. 这里用到的原理其实非常简单,将cookie存在一个公共的站点的页面上就可以了,这里我们管那个站点叫主站S. 先说说所谓的跨域 环境1:a.xxx.com需要跟b.xxx.c ...
- cas sso单点登录系列4_cas-server登录页面自定义修改过程(jsp页面修改)
转:http://blog.csdn.net/ae6623/article/details/8861065 SSO单点登录系列4:cas-server登录页面自定义修改过程,全新DIY. 目标: ...
- 学习CAS实现SSO单点登录
学习CAS实现SSO单点登录 网上找了几篇比较详细的教程,在这记录一下: 原理: CAS实现SSO单点登录原理 教程: 1.CAS实现单点登录(SSO)经典完整教程 2.SSO之CAS单点登录实例演示 ...
- CAS实现SSO单点登录原理(转)
1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...
- SSO(单点登录)与旅游年卡
SSO(单点登录)与旅游年卡 SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他应 ...
随机推荐
- Java 并发系列之九:java 原子操作类Atomic(13个)
1. 原子更新基本类型类 2. 原子更新数组 3. 原子更新引用 4. 原子更新属性 5. txt java 原子操作类Atomic 概述 java.util.concurrent.atomic里的原 ...
- 解决github打不开
今天重庆电信的“临时工”把github废了. 主要是github.githubassets.com和customer-stories-feed.github.com访问不到 通过修改host的方式上g ...
- 学习spring源码-可参考的资料
剑指Spring源码(二) https://www.cnblogs.com/codebear/p/10374261.html 使用idea和gradle编译spring5源码https://blog. ...
- docker 学习操作记录 4
记录3 [BEGIN] // :: Connecting to ... Connection established. To escape to local shell, press Ctrl+Alt ...
- Functional-Light-JS 摘录笔记(1)
function foo(...args) { console.log( args[3] ); } var arr = [ 1, 2, 3, 4, 5 ]; foo( ...arr ); Think ...
- Win10开启上帝模式
1.新建一个文件夹2.修改文件夹名字为 上帝模式.{ED7BA470-8E54-465E-825C-99712043E01C}
- 删除字符串中的字符(C语言)
题目: 编程序将给定字符串中指定字符删除.要求删除指定字符后原字符串不能留下空位置,字符串和指定字符均由键盘输入 基本思路 将字符串与要删除的字符进行比较,若为相同字符,则将字符串中的该字符替换为原字 ...
- 啊哈!算法(第二章)C#实现
第 1 节 解密 QQ 号——队列 新学期开始了,小哈是小哼的新同桌(小哈是个小美女哦~),小哼向小哈询问 QQ 号,小哈当然不会直接告诉小哼啦,原因嘛你懂的. 所以小哈给了小哼一串加密过的数字, ...
- Shell获取指定区间随机未占用的端口号
说明 最近在写Jenkins自动运维的脚本,由于是用的docker,部署的时候启动容器端口号冲突会导致部署失败,用的微服务也不在乎端口什么的,只求部署成功,所以想了很久,参考了一些文章,还有运维大哥的 ...
- 【mybatis】mybatis查询 结果 用map接收,无实体接收 + 关联子表 一并返回主子表的结果
如果后台程序没有实体对应mysql的数据表. 而mybatis想要查询mysql这个数据表的数据,返回给应用程序. 应用程序该如何接收? =============================== ...