添加案例

This commit is contained in:
click33 2022-02-08 16:45:25 +08:00
parent f9bd57c884
commit 6048fe3e90
2 changed files with 11 additions and 22 deletions

View File

@ -18,13 +18,8 @@
## 前言:
- [在线文档http://sa-token.dev33.cn/](http://sa-token.dev33.cn/)
- 我们将会尽力讲解每个功能的设计原因、应用场景,用心阅读文档,你学习到的将不止是 `Sa-Token` 框架本身,更是绝大多数场景下权限设计的最佳实践。
- 注:学习测试请拉取 master 分支dev 为正在开发的分支,有很多特性并不稳定。(开源不易,点个 star 鼓励一下吧!)
- 注:学习测试请拉取 master 分支dev 为正在开发的分支,有很多特性并不稳定。
- 开源不易,点个 star 鼓励一下吧!
- QQ交流群1群 1002350610 (已满)、**2群 614714762 [点击加入](https://jq.qq.com/?_wv=1027&k=b759RZrL)**
## Sa-Token 介绍
@ -88,7 +83,6 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
即使不运行测试,相信您也能意会到绝大多数 API 的用法。
## Sa-Token 功能一览
- **登录认证** —— 单端登录、多端登录、同端互斥登录、七天内免登录
@ -123,7 +117,7 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
## Sa-Token-SSO 单点登录
对于单点登录网上教程大多以CAS模式为主其实对于不同的系统架构实现单点登录的步骤也大为不同Sa-Token由简入难将其划分为三种模式
网上的单点登录教程大多以CAS流程为主其实对于不同的系统架构实现单点登录的步骤也大为不同Sa-Token由简入难将其划分为三种模式
| 系统架构 | 采用模式 | 简介 | 文档链接 |
| :-------- | :-------- | :-------- | :-------- |
@ -133,27 +127,20 @@ StpUtil.switchTo(10044); // 将当前会话身份临时切换为其它账号
1. 前端同域:就是指多个系统可以部署在同一个主域名之下,比如:`c1.domain.com`、`c2.domain.com`、`c3.domain.com`
2. 后端同Redis就是指多个系统可以连接同一个Redis,其它的缓存数据中心亦可。PS这里并不需要把所有项目的数据都放在同一个Redis中Sa-Token提供了 **`[权限缓存与业务缓存分离]`** 的解决方案,详情戳:[Alone独立Redis插件](http://sa-token.dev33.cn/doc/index.html#/plugin/alone-redis)
2. 后端同Redis就是指多个系统可以连接同一个Redis。PS这里并不需要把所有项目的数据都放在同一个Redis中Sa-Token提供了 **`[权限缓存与业务缓存分离]`** 的解决方案,详情戳:[Alone独立Redis插件](http://sa-token.dev33.cn/doc/index.html#/plugin/alone-redis)
3. 如果既无法做到前端同域也无法做到后端同Redis那么只能走模式三Http请求获取会话Sa-Token对SSO提供了完整的封装你只需要按照示例从文档上复制几段代码便可以轻松集成
4. 技术选型一定要根据系统架构对症下药,切不可胡乱选择
## Sa-Token-SSO 特性
1. API简单易用文档介绍详细且提供直接可用的集成示例
2. 支持三种模式不论是否跨域、是否共享Redis、是否前后端分离都可以完美解决
3. 安全性高内置域名校验、Ticket校验、秘钥校验等杜绝`Ticket劫持`、`Token窃取`等常见攻击手段(文档讲述攻击原理和防御手段)
4. 不丢参数:笔者曾试验多个单点登录框架,均有参数丢失的情况,比如重定向之前是:`http://a.com?id=1&name=2`,登录成功之后就变成了:`http://a.com?id=1`Sa-Token-SSO内有专门的算法保证了参数不丢失登录成功之后原路返回页面
5. 无缝集成由于Sa-Token本身就是一个权限认证框架因此你可以只用一个框架同时解决`权限认证` + `单点登录`问题让你不再到处搜索xxx单点登录与xxx权限认证如何整合……
6. 高可定制Sa-Token-SSO模块对代码架构侵入性极低结合Sa-Token本身的路由拦截特性你可以非常轻松的定制化开发
## Sa-Token-OAuth2.0 授权登录
Sa-OAuth2 模块基于 [RFC-6749 标准](https://tools.ietf.org/html/rfc6749) 编写通过Sa-OAuth2你可以非常轻松的实现系统的OAuth2.0授权认证
1. 授权码Authorization CodeOAuth2.0标准授权步骤Server端向Client端下放Code码Client端再用Code码换取授权Token
2. 隐藏式Implicit无法使用授权码模式时的备用选择Server端使用URL重定向方式直接将Token下放到Client端页面
3. 密码式PasswordClient直接拿着用户的账号密码换取授权Token
4. 客户端凭证Client CredentialsServer端针对Client级别的Token代表应用自身的资源授权
| 授权模式 | 简介 |
| :-------- | :-------- |
| 授权码Authorization Code | OAuth2.0 标准授权步骤Server 端向 Client 端下放 Code 码Client 端再用 Code 码换取授权 Token |
| 隐藏式Implicit | 无法使用授权码模式时的备用选择Server 端使用 URL 重定向方式直接将 Token 下放到 Client 端页面 |
| 密码式Password | Client直接拿着用户的账号密码换取授权 Token |
| 客户端凭证Client Credentials| Server 端针对 Client 级别的 Token代表应用自身的资源授权 |
详细参考文档:[http://sa-token.dev33.cn/doc/index.html#/oauth2/readme](http://sa-token.dev33.cn/doc/index.html#/oauth2/readme)

View File

@ -51,6 +51,8 @@
- **[ QForum-Core ]**[QForum 论坛系统官方核心,可拓展性强、轻量级、高性能、前后端分离,基于 SpringBoot2 + Sa-Token + Mybatis-Plus](https://github.com/Project-QForum/QForum-Core/)
- **[ ExciteCMS-Layui ]**[ExciteCMS 快速开发脚手架:一款后端基于 SpringBoot2 + Sa-Token + Mybatis-Plus前端基于 Layuimini 的内容管理系统具备RBAC、日志管理、代码生成等功能并集成常用的支付、OSS等第三方服务拥有详细的开发文档](https://gitee.com/ExciteTeam/ExciteCMS-SpringBoot-Layui)
<br>