mirror of
https://gitee.com/dromara/sa-token.git
synced 2025-10-07 15:14:23 +08:00
docs: 完善会话查询章节文档,增加单账号会话查询的操作示例
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package com.pj.test;
|
||||
|
||||
import cn.dev33.satoken.session.SaTerminalInfo;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||
import cn.dev33.satoken.util.SaResult;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 登录测试
|
||||
* @author click33
|
||||
@@ -45,7 +48,19 @@ public class LoginController {
|
||||
public SaResult tokenInfo() {
|
||||
return SaResult.data(StpUtil.getTokenInfo());
|
||||
}
|
||||
|
||||
|
||||
// 查询账号登录设备信息 ---- http://localhost:8081/acc/terminalInfo
|
||||
@RequestMapping("terminalInfo")
|
||||
public SaResult terminalInfo() {
|
||||
System.out.println("账号 10001 登录设备信息:");
|
||||
List<SaTerminalInfo> terminalList = StpUtil.getTerminalListByLoginId(10001);
|
||||
for (SaTerminalInfo ter : terminalList) {
|
||||
System.out.println("登录index=" + ter.getIndex() + ", 设备type=" + ter.getDeviceType() + ", token=" + ter.getTokenValue() + ", 登录time=" + ter.getCreateTime());
|
||||
}
|
||||
return SaResult.data(terminalList);
|
||||
}
|
||||
|
||||
|
||||
// 测试注销 ---- http://localhost:8081/acc/logout
|
||||
@RequestMapping("logout")
|
||||
public SaResult logout() {
|
||||
|
@@ -3,6 +3,8 @@ package com.pj.test;
|
||||
import cn.dev33.satoken.annotation.SaCheckHttpDigest;
|
||||
import cn.dev33.satoken.annotation.SaCheckSign;
|
||||
import cn.dev33.satoken.context.SaHolder;
|
||||
import cn.dev33.satoken.session.SaSession;
|
||||
import cn.dev33.satoken.session.SaTerminalInfo;
|
||||
import cn.dev33.satoken.spring.SpringMVCUtil;
|
||||
import cn.dev33.satoken.stp.StpUtil;
|
||||
import cn.dev33.satoken.stp.parameter.SaLoginParameter;
|
||||
@@ -13,6 +15,7 @@ import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 测试专用Controller
|
||||
@@ -25,10 +28,11 @@ public class TestController {
|
||||
|
||||
// 测试登录 ---- http://localhost:8081/test/login
|
||||
@RequestMapping("login")
|
||||
public SaResult login(@RequestParam(defaultValue = "10001") long id) {
|
||||
public SaResult login(@RequestParam(defaultValue = "10001") long id, String dt) {
|
||||
StpUtil.login(id, new SaLoginParameter()
|
||||
.setIsConcurrent(true)
|
||||
.setIsShare(false)
|
||||
.setDeviceType(dt)
|
||||
.setMaxLoginCount(4)
|
||||
.setMaxTryTimes(12)
|
||||
.setTerminalExtra("deviceSimpleTitle", "XiaoMi 15 Ultra")
|
||||
@@ -42,17 +46,23 @@ public class TestController {
|
||||
|
||||
// 测试 浏览器访问: http://localhost:8081/test/test
|
||||
@RequestMapping("test")
|
||||
@SaCheckSign(verifyParams = {"name", "age"})
|
||||
public SaResult test() {
|
||||
System.out.println("------------进来了 " + SaFoxUtil.formatDate(new Date()));
|
||||
// StpUtil.getLoginId();
|
||||
// StpUtil.getAnonTokenSession();
|
||||
// StpUtil.setTokenValue("xxx");
|
||||
// StpUtil.getSession().set("name", "zhang");
|
||||
// StpUtil.getSession().set("age", 18);
|
||||
// SysUser user = new SysUser(10001, "lisi", 22);
|
||||
// StpUtil.getSession().set("user", user);
|
||||
// StpUtil.getTokenSession().set("user", user);
|
||||
|
||||
|
||||
// 获取所有已登录的会话id
|
||||
List<String> sessionIdList = StpUtil.searchSessionId(null, 0, -1, false);
|
||||
|
||||
for (String sessionId : sessionIdList) {
|
||||
|
||||
// 根据会话id,查询对应的 SaSession 对象,此处一个 SaSession 对象即代表一个登录的账号
|
||||
SaSession session = StpUtil.getSessionBySessionId(sessionId);
|
||||
|
||||
// 查询这个账号都在哪些设备登录了,依据上面的示例,账号A 的 SaTerminalInfo 数量是 3,账号B 的 SaTerminalInfo 数量是 2
|
||||
List<SaTerminalInfo> terminalList = session.terminalListCopy();
|
||||
System.out.println("会话id:" + sessionId + ",共在 " + terminalList.size() + " 设备登录");
|
||||
}
|
||||
|
||||
|
||||
// 返回
|
||||
return SaResult.data(null);
|
||||
|
Reference in New Issue
Block a user