mirror of
https://gitee.com/dromara/sa-token.git
synced 2026-02-27 16:50:24 +08:00
集成Gitalk评论系统
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
<p align="center">
|
||||
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150" style="margin-bottom: 10px;">
|
||||
<img alt="logo" src="https://gitee.com/sz6/sa-token/raw/master/sa-token-doc/doc/logo.png" width="150" height="150">
|
||||
</p>
|
||||
<h1 align="center" style="margin: 30px 0 30px; font-weight: bold;">sa-token v1.12.0</h1>
|
||||
<h4 align="center">这可能是史上功能最全的Java权限认证框架!</h4>
|
||||
@@ -27,14 +27,14 @@
|
||||
- [开源不易,求鼓励,点个star吧](###)
|
||||
|
||||
|
||||
## sa-token是什么?
|
||||
sa-token是一个JavaWeb轻量级权限认证框架,主要解决项目中登录认证、权限认证、Session会话等一系列由此衍生的权限相关业务
|
||||
## Sa-Token是什么?
|
||||
sa-token是一个轻量级Java权限认证框架,主要解决: 登录认证、权限认证、Session会话 等一系列权限相关问题
|
||||
|
||||
在架构设计上`sa-token`拒绝引入复杂的概念,以实际业务需求为第一目标进行定向突破,例如踢人下线、自动续签、同端互斥登录等常见业务在框架内均可以一行代码调用实现,简单粗暴,拒绝复杂!
|
||||
在架构设计上,`sa-token`拒绝引入复杂的概念,以实际业务需求为第一目标进行定向突破,例如踢人下线、自动续签、同端互斥登录等常见业务在框架内**均可以一行代码调用实现**,简单粗暴,拒绝复杂!
|
||||
|
||||
对于传统Session会话模型的N多难题,例如难以分布式、水平扩展性差,难以兼容前后台分离环境,多会话管理混乱等,
|
||||
`sa-token`独创了以账号为主的`Id-Session`模式,同时又兼容了传统以token为主的`Token-Session`模式,两者彼此独立,互不干扰,
|
||||
让你在进行会话管理时可以如鱼得水,在`sa-toekn`的强力加持下,权限问题将不再成为业务逻辑的瓶颈!
|
||||
`sa-token`独创了以账号为主的`User-Session`模式,同时又兼容传统以token为主的`Token-Session`模式,两者彼此独立,互不干扰,
|
||||
让你在进行会话管理时如鱼得水,在`sa-toekn`的强力加持下,权限问题将不再成为业务逻辑的瓶颈!
|
||||
|
||||
总的来说,与其它权限认证框架相比,`sa-token`具有以下优势:
|
||||
1. 上手简单:可零配置启动框架,能自动化的均已自动化,不让你费脑子
|
||||
@@ -42,7 +42,7 @@ sa-token是一个JavaWeb轻量级权限认证框架,主要解决项目中登
|
||||
3. API简单易用:同样的一个功能,可能在别的框架中需要上百行代码,但是在sa-token中统统一行代码调个方法即可解决
|
||||
4. 组件易于扩展:框架中几乎所有组件都提供了对应的扩展接口,90%以上的逻辑都是可以被按需重写的
|
||||
|
||||
有了sa-token,是时候和那些老旧权限框架说拜拜了!
|
||||
有了sa-token,你所有的权限认证问题,都不再是问题!
|
||||
|
||||
|
||||
## 代码示例
|
||||
@@ -57,6 +57,21 @@ StpUtil.setLoginId(10001);
|
||||
StpUtil.checkLogin();
|
||||
```
|
||||
|
||||
权限认证示例 (只有具有`user:add`权限的会话才可以进入请求)
|
||||
``` java
|
||||
@SaCheckPermission("user:add")
|
||||
@RequestMapping("/user/insert")
|
||||
public String insert(SysUser user) {
|
||||
return "用户增加";
|
||||
}
|
||||
```
|
||||
|
||||
将某个账号踢下线 (待到对方再次访问系统时会抛出`NotLoginException`异常)
|
||||
``` java
|
||||
// 使账号id为10001的会话注销登录
|
||||
StpUtil.logoutByLoginId(10001);
|
||||
```
|
||||
|
||||
如果上面的示例能够证明`sa-token`的简单,那么以下API则可以证明`sa-token`的强大
|
||||
``` java
|
||||
StpUtil.setLoginId(10001); // 标记当前会话登录的账号id
|
||||
|
||||
@@ -46,7 +46,7 @@
|
||||
name: name, // 名字
|
||||
repo: 'https://github.com/click33/sa-token', // github地址
|
||||
// themeColor: '#06A3D7', // 主题颜色
|
||||
basePath: location.pathname.substr(0, location.pathname.lastIndexOf('/') + 1), // 自动计算项目名字
|
||||
basePath: location.pathname.substr(0, location.pathname.lastIndexOf('/') + 1), // 自动计算项目名字
|
||||
// basePath: '/sa-token-doc/', // 设置文件加载的父路径, 这在一些带项目名部署的文件中非常有效
|
||||
auto2top: true, // 是否在切换页面后回到顶部
|
||||
// coverpage: true, // 开启封面
|
||||
@@ -61,7 +61,7 @@
|
||||
alias: {
|
||||
'/.*/_sidebar.md': '/_sidebar.md'
|
||||
},
|
||||
plugins: [ // 自定义插件
|
||||
plugins: [ // 自定义插件
|
||||
function(hook, vm) {
|
||||
// 解析之后执行
|
||||
hook.afterEach(function(html) {
|
||||
@@ -70,13 +70,14 @@
|
||||
var footer = [
|
||||
'<br/><br/><br/><br/><br/><br/><br/><hr/>',
|
||||
'<footer>',
|
||||
'<span>发现错误?想参与编辑? 在 <a href="' + url + '" target="_blank">Gitee</a> 或 <a href="' + url2 + '" target="_blank">GitHub</a> 上编辑此页!</span>',
|
||||
'<span>发现错误?想参与编辑? 在 <a href="' + url + '" target="_blank">Gitee</a> 或 <a href="' + url2 +
|
||||
'" target="_blank">GitHub</a> 上编辑此页!</span>',
|
||||
'</footer>'
|
||||
].join('');
|
||||
return html + footer;
|
||||
});
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
</script>
|
||||
<script src="https://unpkg.zhimg.com/docsify@4.9.4/lib/docsify.min.js"></script>
|
||||
@@ -101,5 +102,28 @@
|
||||
<script type="text/javascript" src="https://v1.cnzz.com/z_stat.php?id=1279021391&web_id=1279021391"></script>
|
||||
</div>
|
||||
|
||||
<!-- Gitalk评论 -->
|
||||
<link rel="stylesheet" href="https://unpkg.zhimg.com/gitalk@1.7.0/dist/gitalk.css">
|
||||
<script src="https://unpkg.zhimg.com/docsify@4.11.6/lib/plugins/gitalk.min.js"></script>
|
||||
<script src="https://unpkg.zhimg.com/gitalk@1.7.0/dist/gitalk.min.js"></script>
|
||||
<script>
|
||||
function f5Gitalk() {
|
||||
window.gitalk = new Gitalk({
|
||||
id: location.hash.replace('#', ''),
|
||||
clientID: '19939399448841f818a1',
|
||||
clientSecret: 'af67e0cc14a0f36e171895771c330471cfe36c23',
|
||||
repo: 'sa-token', // 仓库名称
|
||||
owner: 'click33',
|
||||
admin: ['click33'], // 管理员列表
|
||||
// facebook-like distraction free mode
|
||||
distractionFreeMode: false
|
||||
})
|
||||
}
|
||||
f5Gitalk();
|
||||
window.onhashchange = function() {
|
||||
f5Gitalk();
|
||||
}
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -40,6 +40,7 @@
|
||||
.lang-js .token.string{color: #ddd;}
|
||||
.lang-js .token.punctuation{color: #ddd;}
|
||||
|
||||
.gt-container{padding: 1.5em; padding-bottom: 100px;}
|
||||
|
||||
/* 调整表格的响应式 */
|
||||
#main table{margin-left: 25px;}
|
||||
|
||||
Reference in New Issue
Block a user