mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
代码添加行号
This commit is contained in:
@@ -77,8 +77,22 @@
|
|||||||
].join('');
|
].join('');
|
||||||
return html + footer;
|
return html + footer;
|
||||||
});
|
});
|
||||||
|
// 每次路由切换时数据全部加载完成后调用,没有参数。
|
||||||
|
hook.doneEach(function() {
|
||||||
|
$('pre code').each(function(){
|
||||||
|
var lines = $(this).text().split('\n').length;
|
||||||
|
var $numbering = $('<ul/>').addClass('code-line-box');
|
||||||
|
$(this)
|
||||||
|
.addClass('has-numbering')
|
||||||
|
.parent()
|
||||||
|
.append($numbering);
|
||||||
|
for(i=1;i<=lines;i++){
|
||||||
|
$numbering.append($('<li/>').text(i));
|
||||||
}
|
}
|
||||||
]
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
],
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
<script src="https://unpkg.zhimg.com/docsify@4.9.4/lib/docsify.min.js"></script>
|
<script src="https://unpkg.zhimg.com/docsify@4.9.4/lib/docsify.min.js"></script>
|
||||||
@@ -86,6 +100,8 @@
|
|||||||
<script src="https://unpkg.zhimg.com/prismjs@1.19.0/components/prism-java.min.js"></script>
|
<script src="https://unpkg.zhimg.com/prismjs@1.19.0/components/prism-java.min.js"></script>
|
||||||
<script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
|
<script src="https://cdn.jsdelivr.net/npm/docsify/lib/plugins/search.min.js"></script>
|
||||||
|
|
||||||
|
<script src="https://unpkg.com/jquery@3.4.1/dist/jquery.min.js"></script>
|
||||||
|
|
||||||
<!-- 搜索引擎自动提交 -->
|
<!-- 搜索引擎自动提交 -->
|
||||||
<script>
|
<script>
|
||||||
(function() {
|
(function() {
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
/* 调整一下左侧树的样式 */
|
||||||
body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;}
|
body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;}
|
||||||
.logo-box {position: absolute;left: 30px;top: 10px;cursor: pointer;color: #000;}
|
.logo-box {position: absolute;left: 30px;top: 10px;cursor: pointer;color: #000;}
|
||||||
.logo-box img {width: 50px;height: 50px;vertical-align: middle;}
|
.logo-box img {width: 50px;height: 50px;vertical-align: middle;}
|
||||||
@@ -12,18 +13,18 @@ body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu
|
|||||||
.main-box .markdown-section{max-width: 1000px;}
|
.main-box .markdown-section{max-width: 1000px;}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 左侧树优化 */
|
/* 调整一下左侧树的字体样式 */
|
||||||
.sidebar .sidebar-nav>ul>li>p{font-size: 1.2em; margin-top: 10px;}
|
.sidebar .sidebar-nav>ul>li>p{font-size: 1.2em; margin-top: 10px;}
|
||||||
.sidebar ul li a{color: #222;}
|
.sidebar ul li a{color: #222;}
|
||||||
.sidebar .sidebar-nav>ul>li>ul>li>a{/* color: #222; */font-size: 16px; /* font-weight: 700; */}
|
.sidebar .sidebar-nav>ul>li>ul>li>a{/* color: #222; */font-size: 16px; /* font-weight: 700; */}
|
||||||
|
|
||||||
|
|
||||||
/* ============== 样式优化 ================ */
|
/* ============== 代码样式优化 ================ */
|
||||||
|
|
||||||
/* 背景变黑 */
|
/* 背景变黑 */
|
||||||
.main-box [data-lang]{padding: 0px !important; border-radius: 8px; overflow: hidden;}
|
.main-box [data-lang]{padding: 0px !important; border-radius: 4px;overflow-x: auto; overflow-y: hidden;}
|
||||||
.main-box [class^="lang-"]{border: 0px red solid; padding: 1.5em 1.2em;/* background-color: #282828; */ background-color: #090300; color: #FFF;}
|
.main-box [v-pre] code{border: 0px red solid; border-radius: 0px; /* background-color: #282828; */ background-color: #111; color: #FFF;}
|
||||||
.main-box [data-lang]{overflow: auto;}
|
.main-box [v-pre] code{padding: 1.5em 1.3em; margin-left: 40px !important;}
|
||||||
/* .main-box h2{margin-top: 70px;} */
|
/* .main-box h2{margin-top: 70px;} */
|
||||||
|
|
||||||
/* xml语言样式优化 */
|
/* xml语言样式优化 */
|
||||||
@@ -32,7 +33,7 @@ body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu
|
|||||||
.lang-xml .token.attr-value{color: #A6E22E;}
|
.lang-xml .token.attr-value{color: #A6E22E;}
|
||||||
|
|
||||||
/* java语言样式优化 */
|
/* java语言样式优化 */
|
||||||
.main-box .lang-java{color: #01a252; opacity: 1;}
|
.main-box .lang-java{color: #01a252 !important;; opacity: 1;}
|
||||||
.lang-java .token.keyword{color: #db2d20;}
|
.lang-java .token.keyword{color: #db2d20;}
|
||||||
.lang-java .token.namespace,.lang-java .token.namespace *{color: #01A252; opacity: 1;}
|
.lang-java .token.namespace,.lang-java .token.namespace *{color: #01A252; opacity: 1;}
|
||||||
.lang-java .token.class-name,.lang-java .cm-variable{color: #55b5db; opacity: 1;}
|
.lang-java .token.class-name,.lang-java .cm-variable{color: #55b5db; opacity: 1;}
|
||||||
@@ -41,7 +42,7 @@ body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu
|
|||||||
.lang-java .token.punctuation{color: #ddd;}
|
.lang-java .token.punctuation{color: #ddd;}
|
||||||
|
|
||||||
/* js语言样式优化 */
|
/* js语言样式优化 */
|
||||||
.main-box .lang-js{color: #01a252;}
|
.main-box .lang-js{color: #01a252 !important;}
|
||||||
.lang-js .token.comment{color: #CDAB53;}
|
.lang-js .token.comment{color: #CDAB53;}
|
||||||
/* .lang-js .token.string{color: #fded02;} */
|
/* .lang-js .token.string{color: #fded02;} */
|
||||||
.lang-js .token.string{color: #ddd;}
|
.lang-js .token.string{color: #ddd;}
|
||||||
@@ -54,3 +55,9 @@ body{font-family: -apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu
|
|||||||
@media screen and (min-width: 800px) {
|
@media screen and (min-width: 800px) {
|
||||||
#main table tr th{min-width: 150px;}
|
#main table tr th{min-width: 150px;}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* 代码行号盒子样式 */
|
||||||
|
.code-line-box {list-style-type: none; border-right: 1px solid #000; position: absolute; top: 0; left: 0; width: 40px;}
|
||||||
|
.code-line-box {padding: calc(1.5em + 1px) 0px !important; padding-bottom: calc(1.5em + 20px) !important; margin: 0px !important;}
|
||||||
|
.code-line-box {line-height: inherit !important; background-color: #111; color: #aaa;font-weight: 400;font-size: 0.85em;text-align: center;}
|
||||||
|
.code-line-box {font-family: source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace;}
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
|
|
||||||
#### 集成sa-token的开源项目:
|
#### 集成sa-token的开源项目:
|
||||||
|
|
||||||
[**[ sa-plus ]** 一个基于springboot架构的快速开发框架,内置代码生成器](https://gitee.com/sz6/sa-plus)
|
[[sa-plus] 一个基于springboot架构的快速开发框架,内置代码生成器](https://gitee.com/sz6/sa-plus)
|
||||||
|
|
||||||
|
|
||||||
<br>
|
<br>
|
||||||
|
|||||||
@@ -48,7 +48,6 @@ StpUtil.getLoginIdDefaultNull();
|
|||||||
|
|
||||||
// 获取当前会话登录id, 如果未登录,则返回默认值 (`defaultValue`可以为任意类型)
|
// 获取当前会话登录id, 如果未登录,则返回默认值 (`defaultValue`可以为任意类型)
|
||||||
StpUtil.getLoginId(T defaultValue);
|
StpUtil.getLoginId(T defaultValue);
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -47,7 +47,6 @@
|
|||||||
console.log(res.data);
|
console.log(res.data);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
```
|
```
|
||||||
|
|
||||||
**方式2,更加灵活**
|
**方式2,更加灵活**
|
||||||
|
|||||||
@@ -12,32 +12,32 @@ sa-token默认的token生成策略是uuid风格, 其模样类似于:`623368f0-
|
|||||||
|
|
||||||
怎么设置呢?只需要在yml配置文件里设置 `spring.sa-token.token-style=风格类型` 即可,其有多种取值:
|
怎么设置呢?只需要在yml配置文件里设置 `spring.sa-token.token-style=风格类型` 即可,其有多种取值:
|
||||||
|
|
||||||
1. token-style=`uuid`,uuid风格 **(默认风格)**
|
1、token-style=`uuid`,uuid风格 **(默认风格)**
|
||||||
``` html
|
``` html
|
||||||
623368f0-ae5e-4475-a53f-93e4225f16ae
|
623368f0-ae5e-4475-a53f-93e4225f16ae
|
||||||
```
|
```
|
||||||
|
|
||||||
2. token-style=`simple-uuid`,同上,uuid风格, 只不过去掉了中划线:
|
2、token-style=`simple-uuid`,同上,uuid风格, 只不过去掉了中划线:
|
||||||
``` html
|
``` html
|
||||||
6fd4221395024b5f87edd34bc3258ee8
|
6fd4221395024b5f87edd34bc3258ee8
|
||||||
```
|
```
|
||||||
|
|
||||||
3. token-style=`random-32`,随机32位字符串:
|
3、token-style=`random-32`,随机32位字符串:
|
||||||
``` html
|
``` html
|
||||||
qEjyPsEA1Bkc9dr8YP6okFr5umCZNR6W
|
qEjyPsEA1Bkc9dr8YP6okFr5umCZNR6W
|
||||||
```
|
```
|
||||||
|
|
||||||
4. token-style=`random-64`,随机64位字符串:
|
4、token-style=`random-64`,随机64位字符串:
|
||||||
``` html
|
``` html
|
||||||
v4ueNLEpPwMtmOPMBtOOeIQsvP8z9gkMgIVibTUVjkrNrlfra5CGwQkViDjO8jcc
|
v4ueNLEpPwMtmOPMBtOOeIQsvP8z9gkMgIVibTUVjkrNrlfra5CGwQkViDjO8jcc
|
||||||
```
|
```
|
||||||
|
|
||||||
5. token-style=`random-128`,随机128位字符串:
|
5、token-style=`random-128`,随机128位字符串:
|
||||||
``` html
|
``` html
|
||||||
nojYPmcEtrFEaN0Otpssa8I8jpk8FO53UcMZkCP9qyoHaDbKS6dxoRPky9c6QlftQ0pdzxRGXsKZmUSrPeZBOD6kJFfmfgiRyUmYWcj4WU4SSP2ilakWN1HYnIuX0Olj
|
nojYPmcEtrFEaN0Otpssa8I8jpk8FO53UcMZkCP9qyoHaDbKS6dxoRPky9c6QlftQ0pdzxRGXsKZmUSrPeZBOD6kJFfmfgiRyUmYWcj4WU4SSP2ilakWN1HYnIuX0Olj
|
||||||
```
|
```
|
||||||
|
|
||||||
6. token-style=`tik`,tik风格:
|
6、token-style=`tik`,tik风格:
|
||||||
``` html
|
``` html
|
||||||
gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
||||||
```
|
```
|
||||||
@@ -51,7 +51,7 @@ gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
|||||||
|
|
||||||
|
|
||||||
#### 参考步骤如下:
|
#### 参考步骤如下:
|
||||||
1. 新建文件`MySaTokenAction.java`,继承`SaTokenActionDefaultImpl`默认实现类, 并添加上注解`@Component`,保证此类被`springboot`扫描到
|
1、新建文件`MySaTokenAction.java`,继承`SaTokenActionDefaultImpl`默认实现类, 并添加上注解`@Component`,保证此类被`springboot`扫描到
|
||||||
``` java
|
``` java
|
||||||
package com.pj.satoken;
|
package com.pj.satoken;
|
||||||
|
|
||||||
@@ -71,7 +71,7 @@ gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 再次调用 `StpUtil.setLoginId(10001)`方法进行登录,观察其生成的token样式:
|
2、再次调用 `StpUtil.setLoginId(10001)`方法进行登录,观察其生成的token样式:
|
||||||
``` html
|
``` html
|
||||||
gfuPSwZsnUhwgz08GTCH4wOgasWtc3odP4HLwXJ7NDGOximTvT4OlW19zeLH
|
gfuPSwZsnUhwgz08GTCH4wOgasWtc3odP4HLwXJ7NDGOximTvT4OlW19zeLH
|
||||||
```
|
```
|
||||||
@@ -81,7 +81,7 @@ gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
|||||||
## 以雪花算法生成token
|
## 以雪花算法生成token
|
||||||
在此再举一个例子,以`自定义token生成策略`的方式集成`雪花算法`来生成token
|
在此再举一个例子,以`自定义token生成策略`的方式集成`雪花算法`来生成token
|
||||||
|
|
||||||
1. 首先我们需要找一个合适的类库,帮助我们生成雪花算法唯一id,在此推荐 [Hutool](https://hutool.cn/docs/#/) ,在`pom.xml`里添加依赖:
|
1、首先我们需要找一个合适的类库,帮助我们生成雪花算法唯一id,在此推荐 [Hutool](https://hutool.cn/docs/#/) ,在`pom.xml`里添加依赖:
|
||||||
``` xml
|
``` xml
|
||||||
<!-- Hutool 一个小而全的Java工具类库 -->
|
<!-- Hutool 一个小而全的Java工具类库 -->
|
||||||
<dependency>
|
<dependency>
|
||||||
@@ -91,7 +91,7 @@ gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
|||||||
</dependency>
|
</dependency>
|
||||||
```
|
```
|
||||||
|
|
||||||
2. 同上,我们需要新建文件`MySaTokenAction.java`,继承`SaTokenActionDefaultImpl`默认实现类, 并添加上注解`@Component`,保证此类被`springboot`扫描到
|
2、同上,我们需要新建文件`MySaTokenAction.java`,继承`SaTokenActionDefaultImpl`默认实现类, 并添加上注解`@Component`,保证此类被`springboot`扫描到
|
||||||
``` java
|
``` java
|
||||||
package com.pj.satoken;
|
package com.pj.satoken;
|
||||||
|
|
||||||
@@ -112,7 +112,7 @@ gr_SwoIN0MC1ewxHX_vfCW3BothWDZMMtx__
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
3. 再次调用 `StpUtil.setLoginId(10001)`方法进行登录,观察其生成的token样式:
|
3、再次调用 `StpUtil.setLoginId(10001)`方法进行登录,观察其生成的token样式:
|
||||||
``` html
|
``` html
|
||||||
1339604338175250432
|
1339604338175250432
|
||||||
```
|
```
|
||||||
Reference in New Issue
Block a user