From e846e80dce4530680e7a8453076434f7b2eb9e61 Mon Sep 17 00:00:00 2001
From: click33 <2393584716@qq.com>
Date: Thu, 18 Aug 2022 17:41:01 +0800
Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3=E6=B7=BB=E5=8A=A0API?=
=?UTF-8?q?=E6=89=8B=E5=86=8C?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sa-token-doc/doc/_sidebar.md | 9 +-
sa-token-doc/doc/api/sa-session.md | 77 +++++++++++
sa-token-doc/doc/api/sa-strategy.md | 74 ++++++++++
sa-token-doc/doc/api/sa-token-dao.md | 61 +++++++++
sa-token-doc/doc/api/stp-util.md | 179 +++++++++++++++++++++++++
sa-token-doc/doc/more/common-action.md | 55 ++++++--
6 files changed, 440 insertions(+), 15 deletions(-)
create mode 100644 sa-token-doc/doc/api/sa-session.md
create mode 100644 sa-token-doc/doc/api/sa-strategy.md
create mode 100644 sa-token-doc/doc/api/sa-token-dao.md
create mode 100644 sa-token-doc/doc/api/stp-util.md
diff --git a/sa-token-doc/doc/_sidebar.md b/sa-token-doc/doc/_sidebar.md
index 3e3e024c..c0e35b0e 100644
--- a/sa-token-doc/doc/_sidebar.md
+++ b/sa-token-doc/doc/_sidebar.md
@@ -70,6 +70,14 @@
- [和 Dubbo 集成](/plugin/dubbo-extend)
- [Sa-Token 插件开发指南](/fun/plugin-dev)
+- **API手册**
+ - [StpUtil-鉴权工具类](/api/stp-util)
+ - [SaSession-会话对象](/api/sa-session)
+ - [SaTokenDao-数据持久接口](/api/sa-token-dao)
+ - [SaStrategy-全局策略](/api/sa-strategy)
+ - [全局类、方法](/more/common-action)
+
+
- **其它**
- [更新日志](/more/update-log)
- [框架生态](/more/link)
@@ -79,7 +87,6 @@
- [赞助 Sa-Token](/more/sa-token-donate)
- **附录**
- - [常用类、方法](/more/common-action)
- [常见问题排查](/more/common-questions)
- [框架名词解释](/more/noun-intro)
- [Sa-Token功能结构图](/fun/auth-flow)
diff --git a/sa-token-doc/doc/api/sa-session.md b/sa-token-doc/doc/api/sa-session.md
new file mode 100644
index 00000000..6c210773
--- /dev/null
+++ b/sa-token-doc/doc/api/sa-session.md
@@ -0,0 +1,77 @@
+# SaSession-会话对象
+
+SaSession-会话对象,专业数据缓存组件。
+
+---
+
+### 1、常量
+``` java
+SaSession.ROLE_LIST = "USER"; // 在 Session 上存储用户对象时建议使用的key
+SaSession.ROLE_LIST = "ROLE_LIST"; // 在 Session 上存储角色时建议使用的key
+SaSession.PERMISSION_LIST = "PERMISSION_LIST"; // 在 Session 上存储权限时建议使用的key
+```
+
+
+### 2、构建相关
+``` java
+session.getId(); // 获取此 Session 的 id
+session.setId(id); // 写入此 Session 的 id
+session.getCreateTime(); // 返回当前会话创建时间(时间戳)
+session.setCreateTime(createTime); // 写入此 Session 的创建时间(时间戳)
+```
+
+
+### 3、TokenSign 相关
+``` java
+session.setTokenSignList(tokenSignList); // 写入此 Session 绑定的 Token 签名列表
+session.getTokenSignList(); // 获取此 Session 绑定的 Token 签名列表
+session.tokenSignListCopy(); // 获取 Token 签名列表 的拷贝副本
+session.tokenSignListCopyByDevice(device); // 返回 Token 签名列表 的拷贝副本,根据 device 筛选
+session.getTokenSign(tokenValue); // 查找一个 Token 签名
+session.addTokenSign(tokenSign); // 添加一个 Token 签名
+session.addTokenSign(tokenValue, device); // 添加一个 Token 签名
+session.removeTokenSign(tokenValue); // 移除一个 Token 签名
+```
+
+
+### 4、一些操作
+``` java
+session.update(); // 更新Session(从持久库更新刷新一下)
+session.logout(); // 注销Session (从持久库删除)
+session.logoutByTokenSignCountToZero(); // 当Session上的tokenSign数量为零时,注销会话
+session.getTimeout(); // 获取此Session的剩余存活时间 (单位: 秒)
+session.updateTimeout(timeout); // 修改此Session的剩余存活时间
+session.updateMinTimeout(minTimeout); // 修改此Session的最小剩余存活时间 (只有在 Session 的过期时间低于指定的 minTimeout 时才会进行修改)
+session.updateMaxTimeout(maxTimeout); // 修改此Session的最大剩余存活时间 (只有在 Session 的过期时间高于指定的 maxTimeout 时才会进行修改)
+session.trans(value); // value为 -1 时返回 Long.MAX_VALUE,否则原样返回
+```
+
+
+### 5、存取值
+``` java
+session.get(key); // 取值
+session.get(key, defaultValue); // 取值 (指定默认值)
+session.get(key, () -> {}); // 取值 (如果值为 null,则执行 fun 函数获取值,并把函数返回值写入缓存)
+session.getString(key); // 取值 (转String类型)
+session.getInt(key); // 取值 (转int类型)
+session.getLong(key); // 取值 (转long类型)
+session.getDouble(key); // 取值 (转double类型)
+session.getFloat(key); // 取值 (转float类型)
+session.getModel(key, clazz); // 取值 (指定转换类型)
+session.getModel(key, clazz, defaultValue); // 取值 (指定转换类型, 并指定值为Null时返回的默认值)
+session.has(key); // 是否含有某个key
+session.set(key, value); // 写值
+session.setByNull(key, value); // 写值 (只有在此 key 原本无值的情况下才会写入)
+session.delete(key); // 删值
+session.keys(); // 返回当前Session的所有key
+session.clear(); // 清空所有值
+session.getDataMap(); // 获取数据挂载集合(如果更新map里的值,请调用session.update()方法避免产生脏数据 )
+session.refreshDataMap(dataMap); // 写入数据集合 (不改变底层对象,只将此dataMap所有数据进行替换)
+```
+
+
+
+
+
+
+
diff --git a/sa-token-doc/doc/api/sa-strategy.md b/sa-token-doc/doc/api/sa-strategy.md
new file mode 100644
index 00000000..7529e8cb
--- /dev/null
+++ b/sa-token-doc/doc/api/sa-strategy.md
@@ -0,0 +1,74 @@
+# SaStrategy-全局策略
+
+SaStrategy-全局策略,核心逻辑的代理封装。
+
+---
+
+### 所有策略
+
+``` java
+/**
+ * 创建 Token 的策略
+ *
参数 [账号id, 账号类型]
+ */
+public BiFunction