1
0
mirror of synced 2026-08-31 23:54:55 +00:00
Files

511 lines
21 KiB
HTML
Raw Permalink Normal View History

2022-10-10 00:59:08 +08:00
<!DOCTYPE html>
2026-08-12 03:10:43 +08:00
<html lang="zh-CN">
2022-10-10 00:59:08 +08:00
<head>
<meta charset="UTF-8">
2026-08-12 03:10:43 +08:00
<title>Sa-Token 文档</title>
2022-10-10 00:59:08 +08:00
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
2025-12-24 23:31:40 +08:00
<meta name="description"
2026-08-12 03:10:43 +08:00
content="Sa-Token 官方文档:Java 权限认证框架接入指南,覆盖登录认证、权限认证、SSO 单点登录、OAuth2.0、微服务网关鉴权、分布式 Session、注解鉴权与路由拦截等。">
<meta name="keywords" content="Sa-Token文档,Java权限认证,登录认证,权限认证,SSO,OAuth2,微服务鉴权,Spring Boot">
2025-12-24 23:31:40 +08:00
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
2026-08-12 03:10:43 +08:00
<link rel="canonical" href="https://sa-token.com/doc.html">
<meta property="og:type" content="website">
<meta property="og:title" content="Sa-Token 文档">
<meta property="og:description" content="Sa-Token 官方文档:Java 权限认证框架接入指南,覆盖登录认证、权限认证、SSO 单点登录、OAuth2.0、微服务网关鉴权、分布式 Session、注解鉴权与路由拦截等。">
<meta property="og:url" content="https://sa-token.com/doc.html">
<meta property="og:image" content="https://sa-token.com/logo.png">
<meta property="og:site_name" content="Sa-Token">
<meta property="og:locale" content="zh_CN">
2022-10-10 00:59:08 +08:00
<link rel="shortcut icon" type="image/x-icon" href="logo.png">
<link rel="stylesheet" href="./static/doc.css">
<link rel="stylesheet" href="./static/vue.css">
2026-08-12 03:10:43 +08:00
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "WebPage",
"name": "Sa-Token 文档",
"url": "https://sa-token.com/doc.html",
"description": "Sa-Token 官方文档:Java 权限认证框架接入指南,覆盖登录认证、权限认证、SSO 单点登录、OAuth2.0、微服务网关鉴权等。",
"isPartOf": {
"@type": "WebSite",
"name": "Sa-Token",
"url": "https://sa-token.com/"
}
}
</script>
2022-10-10 00:59:08 +08:00
</head>
<body>
<div class="doc-header">
<div class="nav-left">
<a href="doc.html">
<div class="logo-box">
<img src="logo.png" title="logo" />
<h1 class="logo-text">Sa-Token</h1>
</div>
</a>
<select class="select-version p-none" onchange="location.href=this.value"></select>
<!-- 语言切换:translate.js 会往这个容器里生成 select -->
<span id="translate" class="select-language-box ignore"></span>
</div>
2022-10-10 00:59:08 +08:00
<nav class="nav-right">
2025-12-24 23:31:40 +08:00
<div class="sear-box p-none" tabindex="-1">
2022-10-10 00:59:08 +08:00
<!-- 加载中…… -->
</div>
2022-10-29 12:15:57 +08:00
<div class="zk-box p-none">
<a class="wzi" href="javascript:;">
<!-- <span>背景 </span> -->
<img class="theme-btn" src="static/icon/theme.svg">
<!-- <span class="zk-icon"></span> -->
</a>
<div class="zk-context theme-box">
<div>
<div style="height: 5px;"></div>
<span style="background-color: #FFFFFF;" title="纯白"></span>
<span style="background-color: #f5f5f5;" title="浅灰"></span>
<span style="background-color: #f5e5f5;" title="淡粉"></span>
<span style="background-color: #F1FAFA;" title="薄荷白"></span>
<span style="background-color: #f5f5d5;" title="奶油黄"></span>
2025-12-24 23:31:40 +08:00
<span style="background-color: #E8E8FF;" title="淡紫"></span>
<span style="background-color: #f0f9eb;" title="浅绿"></span>
<span style="background-color: #d5f5f5;" title="浅青"></span>
<span style="background-color: #ebe5dd;" title="暖米"></span>
<span style="background-color: #e8f4ff;" title="浅蓝"></span>
<span style="background-color: #1e1e1e;" data-st-dark="vscode-dark" title="VS Code Dark+"></span>
<span style="background-color: #2b2b2b;" data-st-dark="darcula" title="JetBrains Darcula"></span>
<span style="background-color: #282c34;" data-st-dark="one-dark" title="Atom One Dark"></span>
<span style="background-color: #282a36;" data-st-dark="dracula" title="Dracula"></span>
<span style="background-color: #1a1b26;" data-st-dark="tokyo-night" title="Tokyo Night"></span>
2025-12-24 23:31:40 +08:00
2022-10-29 12:15:57 +08:00
<!-- <span style="background-color: #F0DAD2;"></span> -->
<!-- <span style="background-color: #f5d5d5;"></span> -->
<!-- <span style="background-color: #FFFFE0;"></span> -->
<!-- <span style="background-color: #eeeeee;"></span> -->
<!-- <span style="background-color: #f5fafe;"></span> -->
</div>
</div>
</div>
2022-10-10 00:59:08 +08:00
<a class="wzi" href="index.html">首页</a>
<a class="wzi" href="doc.html">文档</a>
2026-08-12 03:34:45 +08:00
<a class="wzi" href="/blog/index.html">博客</a>
2024-05-16 01:54:37 +08:00
<div class="zk-box">
<a class="wzi" href="javascript:;">
<span>视频 </span>
<span class="zk-icon"></span>
</a>
<div class="zk-context">
<div>
<a href="https://www.bilibili.com/video/BV1LzNu6KEsW" target="_blank">乐之者java(登录认证/权限管理/apiKey等)</a>
2026-05-03 12:39:54 +08:00
<a href="https://www.bilibili.com/video/BV1PF9QBXEet/?p=53" target="_blank">抓蛙师(23集)</a>
<a href="https://www.bilibili.com/video/BV1fsUVBWEyH/" target="_blank">朱老师的小课堂(7集)</a>
2025-11-12 15:53:22 +08:00
<a href="https://www.bilibili.com/video/BV1NF1FBpEe6/" target="_blank">王清江唷 SSO篇(29集)</a>
<a href="https://www.bilibili.com/video/BV1uZUpYVEst/" target="_blank">fox说技术(7集)</a>
2024-10-30 11:43:22 +08:00
<a href="https://www.bilibili.com/video/BV1eFtRezERp?p=87" target="_blank">架构驿站(11集)</a>
2024-05-16 01:54:37 +08:00
<a href="https://www.bilibili.com/video/BV1Zt421u7gk/" target="_blank">王清江唷(99集)</a>
<a href="https://www.bilibili.com/video/BV1kG411o7Ms/" target="_blank">筑梦信仰-joy20集)</a>
<a href="https://www.bilibili.com/video/BV11u4y197JL/" target="_blank">达达-Java26集)</a>
2025-12-24 23:31:40 +08:00
<a href="https://space.bilibili.com/473679148/video" target="_blank">晒太阳的盐(22集)</a>
2024-10-30 17:51:55 +08:00
<div class="zk-fengexian"></div>
<a href="https://wj.qq.com/s2/27539608/zzzd/" target="_blank">[ + 课程提交 ]</a>
2026-02-09 02:19:19 +08:00
<!-- <a href="javascript: layer.alert('如您有 Sa-Token 相关课程录制,请联系官网文档右侧 < sa-token 小助手 > 进行提交');">
2024-10-30 17:51:55 +08:00
[ + 课程提交 ]
2026-02-09 02:19:19 +08:00
</a> -->
2024-05-16 01:54:37 +08:00
</div>
</div>
</div>
<div class="zk-box">
<a class="wzi" href="javascript:;">
<span>案例 </span>
<span class="zk-icon"></span>
</a>
<div class="zk-context">
<div>
<a href="https://gitee.com/sa-tokens/awesome-sa-token" target="_blank">Gitee - Awesome-Sa-Token</a>
<a href="https://github.com/sa-tokens/awesome-sa-token" target="_blank">GitHub - Awesome-Sa-Token</a>
<a href="https://atomgit.com/sa-tokens/awesome-sa-token" target="_blank">AtomGit - Awesome-Sa-Token</a>
</div>
</div>
</div>
2026-08-09 21:40:50 +08:00
<a class="p-none wzi" href="#/more/join-group">加群</a>
2022-11-04 16:51:11 +08:00
<a class="p-none wzi" href="#/more/demand-commit">需求提交</a>
2026-01-24 05:30:22 +08:00
<a class="p-none wzi" href="#/more/sa-token-donate">赞助</a>
2026-07-20 02:27:15 +08:00
<a class="p-none wzi" href="https://sa-max.cn?way=st_doc_top" target="_blank">🔥 SSO/OAuth2 商业版</a>
<div class="zk-box">
<a class="wzi" href="javascript:;">
<span>安全推荐 </span>
<span class="zk-icon"></span>
</a>
<div class="zk-context">
<div>
<a href="https://github.com/FallibleInc/security-guide-for-developers/blob/master/security-checklist-zh.md" target="_blank">开发者安全 Checklist</a>
<a href="https://github.com/shieldfy/API-Security-Checklist/blob/master/README-zh.md" target="_blank">API 安全 Checklist</a>
<a href="https://github.com/Tencent/secguide" target="_blank">腾讯代码安全指南</a>
<a href="https://github.com/LyleMi/Learn-Web-Hacking" target="_blank">Web 安全学习笔记</a>
<a href="https://github.com/OWASP/CheatSheetSeries" target="_blank">OWASP Cheat Sheet Series</a>
<a href="https://github.com/swisskyrepo/PayloadsAllTheThings" target="_blank">PayloadsAllTheThings</a>
</div>
</div>
</div>
2022-10-10 00:59:08 +08:00
<div class="zk-box">
<a class="wzi" href="javascript:;">
<span>相关资源 </span>
<span class="zk-icon"></span>
</a>
<div class="zk-context">
<div>
<!-- <a href="#/more/sa-token-donate">❤️ &nbsp;赞助</a> -->
<a href="#/more/update-log">更新日志</a>
<a href="#/more/common-questions">常见报错</a>
<a href="#/more/tj-gzh">推荐公众号</a>
<div class="zk-fengexian"></div>
<!-- <a href="http://sa-app.dev33.cn/wall.html?name=sa-token" target="_blank">需求墙</a> -->
<a href="#/fun/sa-token-test">在线考试</a>
<a href="#/fun/issue-template">在线提问</a>
2022-11-04 16:51:11 +08:00
<!-- <a href="https://wj.qq.com/s2/10852322/0d8b/" target="_blank">需求提交</a> -->
2024-05-04 08:54:23 +08:00
<a href="#/more/wenjuan">问卷调查</a>
2022-10-10 00:59:08 +08:00
</div>
</div>
</div>
</nav>
</div>
<!-- <a href="/">
<div class="logo-box">
<img src="logo.png" title="logo" />
<h1 class="logo-text">Sa-Token</h1>
</div>
</a> -->
2025-12-24 23:31:40 +08:00
2022-10-10 00:59:08 +08:00
<div class="main-box">
2024-07-29 00:43:55 +08:00
<!-- 内容区 -->
2022-10-10 00:59:08 +08:00
<div id="app">加载中...</div>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- 右边盒子 -->
<div class="doc-right-bj-box">
<div class="doc-right-bj-box-title">目录</div>
<div class="doc-right-more-item">
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- ad盒子 -->
<div class="ad-box">
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<div class="ad-title">
2026-08-09 23:36:50 +08:00
<span class="ad-tips">推荐</span>
2024-07-29 00:43:55 +08:00
<span class="ad-tips ad-close">关闭</span>
</div>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- ssp -->
<div class="top-ad-box" style="margin-bottom: 12px;">
2026-07-20 02:27:15 +08:00
<a href="https://sa-max.cn?way=st_r" target="_blank">
2025-11-10 22:55:42 +08:00
<div class="mad-bg-box">
<div class="mad-context-box">
2026-06-16 23:59:04 +08:00
<img class="mad-img" src="/big-file/contact/sa-token-syb-3.png" />
2025-11-10 22:55:42 +08:00
<span class="mad-text">
2026-06-16 23:59:04 +08:00
<b>Sa-Token 商业版:轻松搭建 SSO 单点登录、OAuth2.0 统一认证、API Key 认证。全源码交付、可二开。</b>
2025-11-10 22:55:42 +08:00
</span>
</div>
</div>
2024-07-29 00:43:55 +08:00
</a>
</div>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- 万维广告div -->
2026-04-04 16:46:12 +08:00
<!-- <div class="wwads-cn wwads-horizontal" data-id="88"
style="min-height: 0px; border: 1px #eee solid; margin-bottom: 12px;"></div> -->
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
</div>
2025-12-24 23:31:40 +08:00
2026-04-04 16:46:12 +08:00
<!-- 企业开发咨询服务 按钮 -->
<div class="help-btn">
2026-07-20 02:27:15 +08:00
<a href="https://sa-max.cn/index-st.html?way=st_qyzx" target="_blank">
2026-04-04 16:46:12 +08:00
❤️ Sa-Token 企业开发咨询服务
</a>
</div>
2024-08-29 21:48:49 +08:00
<!-- ew-wa -->
2025-04-22 18:07:45 +08:00
<div class="ew-wa">
<p>
2025-06-07 01:08:39 +08:00
<a href="https://pan.quark.cn/s/d5abda720e88" target="_blank">离线版文档</a>
2025-04-22 18:07:45 +08:00
<a href="https://pan.quark.cn/s/fea7e5ec72ee" target="_blank">历史所有版本文档</a>
<a href="doc.html#/more/download-demos">Demo 示例大全下载</a>
2025-04-22 18:07:45 +08:00
</p>
</div>
<!-- ew-wa -->
2024-08-29 21:48:49 +08:00
<div class="ew-wa">
<p>如果 Sa-Token 帮助到了你,希望你可以向同事、朋友推荐了解本框架,这对我们非常重要,感谢支持! <!-- 🤗 --> </p>
<p>加油,工程师!</p>
</div>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
</div>
</div>
2022-10-10 00:59:08 +08:00
</div>
2025-12-24 23:31:40 +08:00
2023-08-09 11:29:43 +08:00
<!-- 万维广告div -->
2024-07-29 00:43:55 +08:00
<!-- <div style="position: fixed; right: 0; bottom: 0; z-index: 10000; border: 0px #aaa solid;">
2022-10-10 00:59:08 +08:00
<div class="wwads-cn wwads-vertical" data-id="88" style="max-width:150px"></div>
2024-07-29 00:43:55 +08:00
</div> -->
2025-12-24 23:31:40 +08:00
2023-08-09 11:29:43 +08:00
<!-- 小助手div -->
2024-07-29 00:43:55 +08:00
<!-- <div class="p-none help-btn-box" style="position: fixed; right: 40px; bottom: 330px; z-index: 10000; border: 0px #aaa solid;">
2023-08-09 13:33:01 +08:00
<div class="help-tips" style="position: relative; left: -30px; top: -10px;"></div>
2023-08-09 11:29:43 +08:00
<div class="help-btn" style="width: 60px; height: 60px; text-align: center; border-radius: 50%; background-color: #42b983; cursor: pointer;">
<span style="font-size: 18px; color: #FFF; line-height: 60px;">Help</span>
</div>
2024-07-29 00:43:55 +08:00
</div> -->
2025-12-24 23:31:40 +08:00
2022-10-10 00:59:08 +08:00
<!-- UI逐渐显现 -->
<style type="text/css">
2025-12-24 23:31:40 +08:00
body {
opacity: 0.01;
transition: opacity 0.5s;
background-color: #FFF;
}
2022-10-10 00:59:08 +08:00
</style>
<script type="text/javascript">
setTimeout(function() {
document.body.style.opacity = 1;
}, 1);
</script>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- jqeury -->
<script src="static/jquery.min.js"></script>
<script src="static/layer-v3.1.1/layer.js"></script>
<script src="/static/all-version-common.js"></script>
<script>SaTokenVersions.initVersionSelects();</script>
2025-12-24 23:31:40 +08:00
<!-- 多语言:translate.js + 本地初始化(见 static/sa-translate.js -->
<script src="https://res.zvo.cn/translate/translate.js"></script>
<script src="./static/sa-translate.js"></script>
2022-10-10 00:59:08 +08:00
<!-- -->
<script src="./static/docsify-plugin.js?v=8"></script>
2024-05-12 12:40:05 +08:00
<script src="./static/is-star-plugin.js?v=7"></script>
2026-01-27 13:38:02 +08:00
<!-- <script src="./static/is-fill-in-wj-plugin.js?v=7"></script> -->
<link rel="stylesheet" href="./static/custom-docsify-plugins/doc-lock-plugin.css">
2026-02-09 02:19:19 +08:00
<!-- <script src="./static/custom-docsify-plugins/doc-lock-plugin.js"></script> -->
2026-02-20 19:00:24 +08:00
<!-- <script src="./static/custom-docsify-plugins/doc-lock-by-gzh-plugin.js"></script> -->
2022-10-10 00:59:08 +08:00
<script>
2026-08-18 13:01:12 +08:00
var saTokenTopVersion = '1.46.0'; // Sa-Token最新版本
2022-10-10 00:59:08 +08:00
var name = '<img style="width: 60px; height: 60px; vertical-align: middle;" src="logo.png" alt="logo" /> ';
name += '<b style="font-size: 28px; vertical-align: middle;">Sa-Token</b> <sub>v' + saTokenTopVersion + '</sub>';
window.$docsify = {
// name: name, // 名字
repo: 'https://github.com/dromara/sa-token', // github地址
// themeColor: '#06A3D7', // 主题颜色
basePath: location.pathname.substr(0, location.pathname.lastIndexOf('/') + 1), // 自动计算项目名字
// basePath: '/sa-token-doc/', // 设置文件加载的父路径, 这在一些带项目名部署的文件中非常有效
auto2top: true, // 是否在切换页面后回到顶部
// coverpage: true, // 开启封面
subMaxLevel: 4, // 标题解析层级, 写几就在目录树中解析到几级标题 ,一般写2吧也就
loadSidebar: true, // 加载自定义侧边栏 , 目录定制在: _sidebar.md 文件 (需要创建 .nojekyll 的空文件,阻止 GitHub Pages 忽略命名是下划线开头的文件)
copyCode: { // 复制插件
buttonText: '复制到剪贴板',
errorText: '错误',
successText: '复制成功'
},
topMargin: 90, // 锚点距离顶部的距离
// sidebarDisplayLevel : 1 , // 设置侧边栏显示级别
// search: 'auto', // 搜索功能
alias: {
// '/sso/_sidebar.md': '/sso/_sidebar.md',
'/.*/_sidebar.md': '/_sidebar.md'
},
// tab选项卡
tabs: {
2025-12-24 23:31:40 +08:00
persist: true, // 是否在刷新页面时重置选项卡
sync: false, // 页面上的多个tab是否同步切换
theme: 'classic', // 主题:'classic', 'material', false
tabComments: true, // 用注释来标注选项卡标题,例如:<!-- tab:SpringBoot -->
tabHeadings: true // 用标题+粗体来定制选项卡
2022-10-10 00:59:08 +08:00
},
2024-07-29 00:43:55 +08:00
// 阅读进度
progress: {
position: "top",
color: "var(--theme-color,#42b983)",
height: "3px",
},
// 信息提示框
'flexible-alerts': {
2025-12-24 23:31:40 +08:00
style: 'flat', // 默认风格 callout=浅色,flat=深色
2024-07-29 00:43:55 +08:00
note: {
label: {}
},
tip: {
label: {},
},
warning: {
label: {}
},
attention: {
label: {}
},
},
2022-10-10 00:59:08 +08:00
// 自定义插件
2026-01-27 13:38:02 +08:00
plugins: [
myDocsifyPlugin, // 基础插件
saTranslatePlugin, // 顶部多语言切换(translate.js
2026-01-27 13:38:02 +08:00
// window.isStarPlugin, // 是否 star
// window.isFillInWjPlugin // 问卷填写
2026-02-20 19:00:24 +08:00
// window.docLockPlugin, // 章节锁
2026-01-27 13:38:02 +08:00
],
2022-10-10 00:59:08 +08:00
}
</script>
<script src="static/docsify.min.js"></script>
<script src="static/docsify-copy-code.min.js"></script>
2025-12-24 23:31:40 +08:00
<!-- 语言合集:https://cdn.jsdelivr.net/npm/prismjs@1/components/ -->
<script src="static/prism/prism-java.min.js"></script>
<script src="static/prism/prism-gradle.min.js"></script>
<script src="static/prism/prism-yaml.min.js"></script>
<script src="static/prism/prism-properties.min.js"></script>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- 文档阅读进度条 -->
<!-- <script src="static/docsify-plugins/progress.update.js"></script> -->
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- 右上角次级导航栏 -->
<script src="static/docsify-plugins/sub-nav-draw.js"></script>
2025-12-24 23:31:40 +08:00
2022-10-10 00:59:08 +08:00
<!-- 搜索框 -->
<script src="static/search.min.js"></script>
<!-- 多 tab 切换 -->
<script src="static/docsify-tabs.min.js"></script>
<!-- img点击放大 -->
<script src="static/zoom-image.min.js"></script>
2024-07-29 00:43:55 +08:00
<!-- 好看的提示框 -->
<script src="static/docsify-plugins/docsify-plugin-flexible-alerts.min-1.1.1.js"></script>
2025-12-24 23:31:40 +08:00
<!-- docsify 里一个 md 引入另一个 md-->
<script src="static/docsify-plugins/docsify-betterembed-1.1.1.js"></script>
2022-10-10 00:59:08 +08:00
<!-- sidebar折叠 -->
2024-07-29 00:43:55 +08:00
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/sidebar.min.css" />
<script src="https://cdn.jsdelivr.net/npm/docsify-sidebar-collapse/dist/docsify-sidebar-collapse.min.js"></script> -->
2022-10-10 00:59:08 +08:00
2025-12-24 23:31:40 +08:00
2024-03-19 17:08:34 +08:00
<!-- 渲染赞助数据 -->
<script src="static/donate/donate-list.js"></script>
<script src="static/donate/donate-fun.js"></script>
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
<!-- 广告盒子 -->
2022-10-10 00:59:08 +08:00
<script>
2025-12-24 23:31:40 +08:00
(function() {
2024-07-29 00:43:55 +08:00
// 功能6:标题下面的广告
2025-12-24 23:31:40 +08:00
if ($(window).width() >= 800) {
2024-07-29 00:43:55 +08:00
// 如果一天内用户点击过关闭广告,则不再展现
let allowJg = 1000 * 60 * 60 * 24 * 1;
// allowJg = 1000 * 10;
2025-12-24 23:31:40 +08:00
try {
2026-08-09 23:36:50 +08:00
const closeAdTime = localStorage.closeAdTimeRight;
2025-12-24 23:31:40 +08:00
if (closeAdTime) {
2024-07-29 00:43:55 +08:00
// 点击广告关闭的时间,和当前时间的差距
const closeAdJg = new Date().getTime() - parseInt(closeAdTime);
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
// 差距小于1天,不再展示
2025-12-24 23:31:40 +08:00
if (closeAdJg < allowJg) {
2024-07-29 00:43:55 +08:00
console.log('not show ad ...');
$('.ad-box').remove();
return;
}
}
2025-12-24 23:31:40 +08:00
} catch (e) {
2024-07-29 00:43:55 +08:00
console.error(e);
}
2025-12-24 23:31:40 +08:00
2024-07-29 00:43:55 +08:00
// 添加关闭事件
2025-12-24 23:31:40 +08:00
$('.ad-close').click(function() {
2024-07-29 00:43:55 +08:00
console.log('关闭广告');
// $('.top-ad-box').slideUp(); // 折叠收起
2025-12-24 23:31:40 +08:00
layer.confirm('关闭后,一天内不再展现此信息', function() {
2024-07-29 00:43:55 +08:00
$(".ad-box").fadeOut(1000); // 淡出效果
layer.msg('关闭成功');
2026-08-09 23:36:50 +08:00
localStorage.closeAdTimeRight = new Date().getTime();
2024-07-29 00:43:55 +08:00
})
})
}
})();
2022-10-10 00:59:08 +08:00
</script>
2025-12-24 23:31:40 +08:00
2023-07-19 23:55:49 +08:00
<!-- 万维广告 -->
2026-04-04 16:46:12 +08:00
<!-- <script data-mode="hash" type="text/javascript" src="https://cdn.wwads.cn/js/makemoney.js" async></script> -->
2025-12-24 23:31:40 +08:00
2022-10-10 00:59:08 +08:00
<script type="text/javascript">
// 预览版提示
if (location.host === 'rc.sa-token.com') {
2025-12-24 23:31:40 +08:00
const newTips =
'<b>当前文档为RC预览版文档,仅做学习测试使用,正式项目请使用正式版:<a href="https://sa-token.com/" target="_blank">https://sa-token.com/</a></b>';
2022-10-10 00:59:08 +08:00
layer.alert(newTips);
}
</script>
2025-12-24 23:31:40 +08:00
2023-08-09 11:29:43 +08:00
<!-- 小助手提示 -->
<script>
2024-07-29 00:43:55 +08:00
// setTimeout(function(){
// try{
// // 给个小提示
// const index = layer.tips('框架技术支持,点此求助', '.help-btn', {
// tips: [1, '#000'] ,//还可配置颜色
// // time: 5000,
// });
// // 改为 fixed 定位,否则它会随着滚动条移动,样式就跑偏了
// $('#layui-layer' + index).css('position', 'fixed');
// }catch(e){
// console.error(e);
// }
// }, 500)
2022-10-17 18:19:08 +08:00
</script>
2025-12-24 23:31:40 +08:00
<!-- 修改背景颜色 水滴波纹特效 -->
<link rel="stylesheet" href="static/water-change-theme/water-change-theme.css" />
<script src="static/water-change-theme/gsap-3.12.2.min.js"></script>
<script src="static/water-change-theme/water-change-theme.js"></script>
2023-04-17 19:00:13 +08:00
2025-12-24 23:31:40 +08:00
2023-04-17 19:00:13 +08:00
<!-- 赞助页的展开和收缩 -->
<script>
// 展开
2025-12-24 23:31:40 +08:00
function expandZanZhu() {
2023-04-17 19:00:13 +08:00
$('.zk-btn--1').hide();
$('.zk-btn--2').show();
$('.zanzhu-box').height($('.zanzhu-box table').height());
}
// 折叠
2025-12-24 23:31:40 +08:00
function foldZanZhu() {
2023-04-17 19:00:13 +08:00
$('.zanzhu-box').height(500);
$('.zk-btn--2').hide();
$('.zk-btn--1').show();
}
</script>
2025-12-24 23:31:40 +08:00
<!-- 自定义滚动条颜色 -->
<!-- <style>
/* 自定义body滚动条样式 */
body::-webkit-scrollbar { width: 8px; }
/* 滚动条颜色 */
body::-webkit-scrollbar-thumb { background-color: green; border-radius: 3px; }
/* 滚动条上面的和下面的颜色 */
body::-webkit-scrollbar-track {
background: linear-gradient(to bottom,
#42B983 0%,
#42B983 var(--scroll-progress, 0%),
#FCFCFC var(--scroll-progress, 0%),
#FCFCFC 100%);
}
</style>
<script>
// 动态更新滚动条颜色
window.addEventListener('scroll', function() {
const scrollTop = document.documentElement.scrollTop || document.body.scrollTop;
const scrollHeight = document.documentElement.scrollHeight - document.documentElement.clientHeight;
const scrollProgress = (scrollTop / scrollHeight) * 100;
document.body.style.setProperty('--scroll-progress', scrollProgress + '%');
});
// 初始化滚动条状态
window.dispatchEvent(new Event('scroll'));
</script> -->
2025-12-24 23:31:40 +08:00
2026-05-19 04:47:54 +08:00
<script src="./a/star-guide/star-guide.js"></script>
</body>
</html>