From 12116c106edcd6170be6407c941ab4b436040dd3 Mon Sep 17 00:00:00 2001 From: click33 <2393584716@qq.com> Date: Wed, 19 Mar 2025 08:10:18 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20=E5=AE=8C=E5=96=84=20=E7=99=BB=E5=BD=95?= =?UTF-8?q?=E5=8F=82=E6=95=B0=20&=20=E6=B3=A8=E9=94=80=E5=8F=82=E6=95=B0?= =?UTF-8?q?=20=E7=AB=A0=E8=8A=82=E6=96=87=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sa-token-doc/_sidebar.md | 2 +- sa-token-doc/up/login-parameter.md | 39 +++++++++++++++++++++++++++++- 2 files changed, 39 insertions(+), 2 deletions(-) diff --git a/sa-token-doc/_sidebar.md b/sa-token-doc/_sidebar.md index 3776cdfd..6a1f255f 100644 --- a/sa-token-doc/_sidebar.md +++ b/sa-token-doc/_sidebar.md @@ -24,7 +24,7 @@ - [自定义 Token 前缀](/up/token-prefix) - [同端互斥登录](/up/mutex-login) - [记住我模式](/up/remember-me) - - [登录参数](/up/login-parameter) + - [登录参数 & 注销参数](/up/login-parameter) - [二级认证](/up/safe-auth) - [模拟他人 & 身份切换](/up/mock-person) - [账号封禁](/up/disable) diff --git a/sa-token-doc/up/login-parameter.md b/sa-token-doc/up/login-parameter.md index a1fb4420..88cd8925 100644 --- a/sa-token-doc/up/login-parameter.md +++ b/sa-token-doc/up/login-parameter.md @@ -1,5 +1,7 @@ # 登录参数 +### 1、登录参数 + 在之前的章节我们提到,通过 `StpUtil.login(xxx)` 可以完成指定账号登录,同时你可以指定第二个参数来扩展登录信息,比如: ``` java @@ -10,7 +12,7 @@ StpUtil.login(10001, "PC"); StpUtil.login(10001, false); ``` -除了以上内容,第二个参数你还可以指定一个 `SaLoginParameter`,来详细控制登录的多个细节,例如: +除了以上内容,第二个参数你还可以指定一个 `SaLoginParameter` 对象,来详细控制登录的多个细节,例如: ``` java StpUtil.login(10001, new SaLoginParameter() @@ -27,9 +29,44 @@ StpUtil.login(10001, new SaLoginParameter() .setToken("xxxx-xxxx-xxxx-xxxx") // 预定此次登录的生成的Token .setIsWriteHeader(false) // 是否在登录后将 Token 写入到响应头 .setTerminalExtra("key", "value")// 本次登录挂载到 SaTerminalInfo 的自定义扩展数据 + .setReplacedRange(SaReplacedRange.CURR_DEVICE_TYPE) // 顶人下线的范围: CURR_DEVICE_TYPE=当前指定的设备类型端, ALL_DEVICE_TYPE=所有设备类型端 + .setOverflowLogoutMode(SaLogoutMode.LOGOUT) // 溢出 maxLoginCount 的客户端,将以何种方式注销下线: LOGOUT=注销下线, KICKOUT=踢人下线, REPLACED=顶人下线 ); ``` 以上大部分参数在未指定时将使用全局配置作为默认值。 + +### 2、注销参数 + +同样的,在调用注销时,也可以指定一些参数决定注销的细节行为: + +``` java +// 当前客户端注销 +StpUtil.logout(new SaLogoutParameter() + // 注销范围: TOKEN=只注销当前 token 的会话,ACCOUNT=注销当前 token 指向的 loginId 其所有客户端会话 + // 此参数只在调用 StpUtil.logout(new SaLogoutParameter()) 时有效 + .setRange(SaLogoutRange.TOKEN) +); + +// 指定 token 注销 +StpUtil.logoutByTokenValue("xxxxxxxxxxxxxxxxxxxxxxx", new SaLogoutParameter() + // 如果 token 已被冻结,是否保留其操作权 (是否允许此 token 调用注销API)(默认 false) + // 此参数只在调用 StpUtil.[logout/kickout/replaced]ByTokenValue("token", new SaLogoutParameter()) 时有效 + .setIsKeepFreezeOps(false) + // 是否保留此 token 的 Token-Session 对象(默认 false) + .setIsKeepTokenSession(true) +); + +// 指定 loginId 注销 +StpUtil.logout(10001, new SaLogoutParameter() + .setDeviceType("PC") // 设置注销的设备类型 (如果不指定,则默认注销所有客户端) + .setIsKeepTokenSession(true) // 是否保留对应 token 的 Token-Session 对象(默认 false) + .setMode(SaLogoutMode.REPLACED) // 设置注销模式:LOGOUT=注销登录、KICKOUT=踢人下线,REPLACED=顶人下线(默认LOGOUT) +); +``` + + + +