提交 3b9f6b71 编写于 作者: shengzhang_'s avatar shengzhang_

集成Gitalk评论系统

上级 251ac4cf
<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;}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册