From 09750705080f4cb5780e8364351849aa4a0e13fb Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Mon, 9 May 2022 17:35:29 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=8A=A8=E6=80=81=E6=BC=94?=
=?UTF-8?q?=E7=A4=BA=E5=9B=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sa-token-doc/doc/lib/docsify-plugin.js | 14 ++++++++++++++
sa-token-doc/doc/lib/index.css | 15 ++++++++++++++-
sa-token-doc/doc/micro/dcs-session.md | 7 +++++++
sa-token-doc/doc/plugin/alone-redis.md | 4 ++++
sa-token-doc/doc/sso/sso-type1.md | 4 ++++
sa-token-doc/doc/sso/sso-type2.md | 4 ++++
sa-token-doc/doc/sso/sso-type3.md | 4 ++++
sa-token-doc/doc/up/mutex-login.md | 3 +++
sa-token-doc/doc/up/remember-me.md | 11 +++++++----
sa-token-doc/doc/use/jur-auth.md | 4 ++++
sa-token-doc/doc/use/kick.md | 2 ++
sa-token-doc/doc/use/login-auth.md | 3 +++
12 files changed, 70 insertions(+), 5 deletions(-)
diff --git a/sa-token-doc/doc/lib/docsify-plugin.js b/sa-token-doc/doc/lib/docsify-plugin.js
index 038403d4..9a386f66 100644
--- a/sa-token-doc/doc/lib/docsify-plugin.js
+++ b/sa-token-doc/doc/lib/docsify-plugin.js
@@ -81,6 +81,20 @@ var myDocsifyPlugin = function(hook, vm) {
// $('.search input').val('');
$('.results-panel').removeClass('show');
});
+
+ // 点击按钮,加载图片
+ $(document).on('click', '.show-img', function(){
+ var src = $(this).attr('img-src');
+ var img = '';
+ $(this).after(img);
+ $(this).remove();
+ })
+
+ // 点击按钮,加载图片
+ $(document).on('click', '.show-to-img', function(){
+ open(this.src);
+ })
+
});
}
\ No newline at end of file
diff --git a/sa-token-doc/doc/lib/index.css b/sa-token-doc/doc/lib/index.css
index c92abe05..bd2a7e97 100644
--- a/sa-token-doc/doc/lib/index.css
+++ b/sa-token-doc/doc/lib/index.css
@@ -204,7 +204,20 @@ body {
#main .toc-box a{border-color: rgba(0,0,0,0); transition: 0s;}
#main .toc-box a span{color: inherit;}
-
+/* 加载图片的按钮 */
+.show-img{
+ background-color: #FFF;
+ padding: 8px 15px;
+ border: 1px #42b983 solid;
+ color: #42b983;
+ cursor: pointer;
+ border-radius: 2px;
+ transition: all 0.2s;
+}
+.show-img:hover{
+ background-color: #eaf6eb;
+}
+.show-to-img{cursor: pointer;}
/* 导航栏悬浮时出现下滑条条 */
/* .doc-header .nav-right .wzi::after {
diff --git a/sa-token-doc/doc/micro/dcs-session.md b/sa-token-doc/doc/micro/dcs-session.md
index 84e44a3c..5851bfce 100644
--- a/sa-token-doc/doc/micro/dcs-session.md
+++ b/sa-token-doc/doc/micro/dcs-session.md
@@ -28,6 +28,12 @@
由于`jwt`模式不在服务端存储数据,对于比较复杂的业务可能会功能受限,因此更加推荐使用方案三
+
+
+
+
+集成依赖示例:
+
``` xml
@@ -40,6 +46,7 @@
commons-pool2
```
+
详细参考:[集成 Redis](/up/integ-redis)
diff --git a/sa-token-doc/doc/plugin/alone-redis.md b/sa-token-doc/doc/plugin/alone-redis.md
index 856ce9f8..c5352f49 100644
--- a/sa-token-doc/doc/plugin/alone-redis.md
+++ b/sa-token-doc/doc/plugin/alone-redis.md
@@ -5,6 +5,10 @@ Sa-Token默认的Redis集成方式会把权限数据和业务缓存放在一起
> 搭建两个Redis服务器,一个专门用来做业务缓存,另一台专门存放Sa-Token权限数据
+
+
+
+
要将Sa-Token的数据单独抽离出来很简单,你只需要为Sa-Token单独配置一个Redis连接信息即可
---
diff --git a/sa-token-doc/doc/sso/sso-type1.md b/sa-token-doc/doc/sso/sso-type1.md
index 91d9919d..5f860191 100644
--- a/sa-token-doc/doc/sso/sso-type1.md
+++ b/sa-token-doc/doc/sso/sso-type1.md
@@ -18,6 +18,10 @@
而共享Redis,并不需要我们把所有项目的数据都放在同一个Redis中,Sa-Token提供了 **[权限缓存与业务缓存分离]** 的解决方案,详情戳:[Alone独立Redis插件](/plugin/alone-redis)。
+
+
+
+
OK,所有理论就绪,下面开始实战:
diff --git a/sa-token-doc/doc/sso/sso-type2.md b/sa-token-doc/doc/sso/sso-type2.md
index 7426b2d3..32365880 100644
--- a/sa-token-doc/doc/sso/sso-type2.md
+++ b/sa-token-doc/doc/sso/sso-type2.md
@@ -28,6 +28,10 @@
整个过程,除了第四步用户在SSO认证中心登录时会被打断,其余过程均是自动化的,当用户在另一个子系统再次点击`[登录]`按钮,由于此用户在SSO认证中心已有会话存在,
所以第四步也将自动化,也就是单点登录的最终目的 —— 一次登录,处处通行。
+
+
+
+
下面我们按照步骤依次完成上述过程:
### 2、准备工作
diff --git a/sa-token-doc/doc/sso/sso-type3.md b/sa-token-doc/doc/sso/sso-type3.md
index aef3eef5..edb70b9d 100644
--- a/sa-token-doc/doc/sso/sso-type3.md
+++ b/sa-token-doc/doc/sso/sso-type3.md
@@ -131,6 +131,10 @@ public Object myinfo() {
5. Server 端注销下线。
6. 单点注销完成。
+
+
+
+
这些逻辑 Sa-Token 内部已经封装完毕,你只需按照文档增加以下配置即可:
#### 4.1、SSO-Client 端新增配置
diff --git a/sa-token-doc/doc/up/mutex-login.md b/sa-token-doc/doc/up/mutex-login.md
index 40a3c6ce..1bd55ee1 100644
--- a/sa-token-doc/doc/up/mutex-login.md
+++ b/sa-token-doc/doc/up/mutex-login.md
@@ -3,6 +3,9 @@
如果你经常使用腾讯QQ,就会发现它的登录有如下特点:它可以手机电脑同时在线,但是不能在两个手机上同时登录一个账号
同端互斥登录,指的就是像腾讯QQ一样,在同一类型设备上只允许单地点登录,在不同类型设备上允许同时在线
+
+
+
---
## 具体API
diff --git a/sa-token-doc/doc/up/remember-me.md b/sa-token-doc/doc/up/remember-me.md
index 10eb2124..97dc60ef 100644
--- a/sa-token-doc/doc/up/remember-me.md
+++ b/sa-token-doc/doc/up/remember-me.md
@@ -23,13 +23,16 @@ StpUtil.login(10001, false);
### 实现原理
Cookie作为浏览器提供的默认会话跟踪机制,其生命周期有两种形式,分别是:
- 临时Cookie:有效期为本次会话,只要关闭浏览器窗口,Cookie就会消失
-- 永久Cookie:有效期为一个具体的时间,在时间未到期之前,即使用户关闭了浏览器Cookie也不会消失
+- 持久Cookie:有效期为一个具体的时间,在时间未到期之前,即使用户关闭了浏览器Cookie也不会消失
利用Cookie的此特性,我们便可以轻松实现 [记住我] 模式:
-- 勾选 [记住我] 按钮时:调用`StpUtil.login(10001, true)`,在浏览器写入一个`永久Cookie`储存 Token,此时用户即使重启浏览器 Token 依然有效
+- 勾选 [记住我] 按钮时:调用`StpUtil.login(10001, true)`,在浏览器写入一个`持久Cookie`储存 Token,此时用户即使重启浏览器 Token 依然有效
- 不勾选 [记住我] 按钮时:调用`StpUtil.login(10001, false)`,在浏览器写入一个`临时Cookie`储存 Token,此时用户在重启浏览器后 Token 便会消失,导致会话失效
+
+
+
### 前后台分离模式下如何实现[记住我]?
此时机智的你😏很快发现一个问题,Cookie虽好,却无法在前后端分离环境下使用,那是不是代表上述方案在APP、小程序等环境中无效?
@@ -39,7 +42,7 @@ Cookie作为浏览器提供的默认会话跟踪机制,其生命周期有两
以经典跨端框架 [uni-app](https://uniapp.dcloud.io/) 为例,我们可以使用如下方式达到同样的效果:
``` js
-// 使用本地存储保存token,达到 [永久Cookie] 的效果
+// 使用本地存储保存token,达到 [持久Cookie] 的效果
uni.setStorageSync("satoken", "xxxx-xxxx-xxxx-xxxx-xxx");
// 使用globalData保存token,达到 [临时Cookie] 的效果
@@ -48,7 +51,7 @@ getApp().globalData.satoken = "xxxx-xxxx-xxxx-xxxx-xxx";
如果你决定在PC浏览器环境下进行前后台分离模式开发,那么更加简单:
``` js
-// 使用 localStorage 保存token,达到 [永久Cookie] 的效果
+// 使用 localStorage 保存token,达到 [持久Cookie] 的效果
localStorage.setItem("satoken", "xxxx-xxxx-xxxx-xxxx-xxx");
// 使用 sessionStorage 保存token,达到 [临时Cookie] 的效果
diff --git a/sa-token-doc/doc/use/jur-auth.md b/sa-token-doc/doc/use/jur-auth.md
index 6a73e5b8..dbc7d760 100644
--- a/sa-token-doc/doc/use/jur-auth.md
+++ b/sa-token-doc/doc/use/jur-auth.md
@@ -10,6 +10,10 @@
再往底了说,就是每个账号都会拥有一个权限码集合,我来校验这个集合中是否包含指定的权限码
例如:当前账号拥有权限码集合:`["user-add", "user-delete", "user-get"]`,这时候我来校验权限 `"user-update"`,则其结果就是:**验证失败,禁止访问**
+
+
+
+
所以现在问题的核心就是:
1. 如何获取一个账号所拥有的的权限码集合
2. 本次操作需要验证的权限码是哪个
diff --git a/sa-token-doc/doc/use/kick.md b/sa-token-doc/doc/use/kick.md
index b3413f96..d5189bcd 100644
--- a/sa-token-doc/doc/use/kick.md
+++ b/sa-token-doc/doc/use/kick.md
@@ -26,6 +26,8 @@ StpUtil.kickoutByTokenValue("token"); // 将指定 Token 踢下线
- 踢人下线不会清除Token信息,而是将其打上特定标记,再次访问会提示:Token已被踢下线。
+
+
### 3、账号封禁
对于违规账号,有时候我们仅仅将其踢下线还是远远不够的,我们还需要对其进行**账号封禁**防止其再次登录
diff --git a/sa-token-doc/doc/use/login-auth.md b/sa-token-doc/doc/use/login-auth.md
index c39a2164..a300a780 100644
--- a/sa-token-doc/doc/use/login-auth.md
+++ b/sa-token-doc/doc/use/login-auth.md
@@ -8,6 +8,9 @@
那么如何判断一个会话是否登录?框架会在登录成功后给你做个标记,每次登录认证时校验这个标记,有标记者视为已登录,无标记者视为未登录!
+
+
+
### 登录与注销
根据以上思路,我们很容易想到以下api: