Loading...
Loading...
Core skill for Sa-Token, a lightweight Java authentication and authorization framework. It covers login authentication, permission/role authentication, annotation-based authorization, route-interceptor authorization, Session management, forced logout, Token expiration strategies, framework configuration, Token styles and submission prefixes, frontend-backend separation, remember-me mode, mutually exclusive login on the same device, and handling NotLoginException scene values. StpUtil is the core facade utility class and provides a complete suite of authentication APIs, including login/checkLogin/logout/isLogin/getLoginId/getTokenValue. Use this skill when users need to integrate permission authentication into Java Web projects, use StpUtil for login and permission validation, configure route interceptors, or implement annotation-based authorization. It does not cover advanced features such as secondary authentication, account banning, multi-account support, SSO, OAuth2, microservices, API security, JWT, or Redis; use the corresponding specialized skills for those.
npx skill4agent add full-stack-skills/java-skills sa-tokenBased on Sa-Token v1.45.0 | Official documentation: https://sa-token.cc | GitHub: https://github.com/dromara/sa-token
StpUtilStpUtil.login()StpUtil.isLogin()checkLogin()getLoginId()*@SaCheckLogin@SaCheckPermission@SaCheckRole@SaIgnore@SaCheckOr@SaCheckLogin@SaCheckPermissionsa-token-spring-boot-starterStpUtil.login(id)// === 登录认证 ===
StpUtil.login(Object loginId); // 会话登录
StpUtil.login(10001, "PC"); // 指定设备类型
StpUtil.login(10001, true); // 指定记住我
StpUtil.login(10001, new SaLoginParameter()...); // 完整参数模式
StpUtil.logout(); // 当前会话注销
StpUtil.logout(10001); // 指定账号注销
StpUtil.logoutByTokenValue(token); // 指定Token注销
StpUtil.logoutByLoginId(10001, "PC"); // 指定账号+设备注销
StpUtil.kickout(10001); // 踢人下线
StpUtil.kickoutByTokenValue(token); // 根据Token值踢人
StpUtil.isLogin(); // 是否登录(true/false)
StpUtil.checkLogin(); // 校验登录(未登录抛NotLoginException)
// === 会话/Token查询 ===
StpUtil.getLoginId(); // 当前账号id
StpUtil.getLoginIdAsString()/AsInt()/AsLong(); // 类型化获取
StpUtil.getLoginIdDefaultNull(); // 未登录返回null
StpUtil.getLoginIdByToken(token); // 根据token查账号
StpUtil.getTokenValue(); // 当前token值
StpUtil.getTokenValueByLoginId(10001); // 获取指定账号的token值
StpUtil.getTokenListByLoginId(10001); // 获取指定账号所有token列表
StpUtil.getTokenName(); // token名称(satoken)
StpUtil.getTokenTimeout(); // 剩余有效期(秒)
StpUtil.getTokenInfo(); // 完整TokenInfo
StpUtil.setTokenValue("xxx-xxx"); // 手动设置当前会话token值
StpUtil.renewRefresh(); // 自动续签token有效期
StpUtil.getTerminalListByLoginId(10001); // 获取指定账号所有终端列表
// === 权限/角色校验 ===
StpUtil.getPermissionList(); // 权限码集合
StpUtil.hasPermission("user.add"); // boolean
StpUtil.checkPermission("user.add"); // 失败抛NotPermissionException
StpUtil.checkPermissionAnd("add","del","get"); // 全部拥有
StpUtil.checkPermissionOr("add","del","get"); // 至少一个
StpUtil.hasRole("admin"); // boolean
StpUtil.checkRole("admin"); // 失败抛NotRoleException
// === Session会话 ===
StpUtil.getSession(); // 当前账号Account-Session
StpUtil.getSessionByLoginId(10001); // 指定账号的Session
StpUtil.getTokenSession(); // 当前Token-Session
StpUtil.getTokenSessionByTokenValue("xxx-xxx"); // 按token值获取Token-Session
SaSessionCustomUtil.getSessionById("goods-10001"); // Custom-Session| Topic | File | Source |
|---|---|---|
| Complete Login Authentication Guide | references/login-auth.md | GitHub |
| Permission/Role Authentication | references/jur-auth.md | GitHub |
| Annotation-Based Authorization | references/at-check.md | GitHub |
| Route-Interceptor Authorization | references/route-check.md | GitHub |
| Session Management | references/session.md | GitHub |
| Framework Configuration | references/config.md | GitHub |
| Forced Logout | references/kickout.md | GitHub |
| Token Expiration | references/token-timeout.md | GitHub |
| NotLoginException | references/not-login-scene.md | GitHub |
| Frontend-Backend Separation & Remember Me | references/not-cookie.md | GitHub, remember-me |
| Token Style & Prefix | references/token-style.md | GitHub, token-prefix |
| Login Parameter Details | references/login-parameter.md | GitHub |
| Mutually Exclusive Login on the Same Device | references/mutex-login.md | GitHub |
| Quick Start | examples/quickstart.md | GitHub |
SaInterceptor@SaIgnore@SaCheckPermissionmode = SaMode.ORStpUtil.logout()logout-rangeis-read-cookie: false