hejianhao
2026-08-28 16a57a8fc6868cea9171a1119698572407a2fc03
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
package com.tcm.training.admin.app.auth.support;
 
import cn.dev33.satoken.stp.SaLoginModel;
import cn.dev33.satoken.stp.SaTokenInfo;
import cn.dev33.satoken.stp.StpLogic;
 
/**
 * APP 用户独立登录态工具,避免与后台管理员 token 混用。
 */
public final class StpAppUserUtil {
 
    private static final StpLogic STP_LOGIC = new StpLogic("app-user");
    private StpAppUserUtil() {
    }
 
    /**
     * 为 APP 用户建立指定有效期的登录态。
     */
    public static void login(Object loginId, long timeoutSeconds) {
        STP_LOGIC.login(loginId, new SaLoginModel().setTimeout(timeoutSeconds));
    }
 
    /**
     * 校验当前请求是否已登录 APP 用户。
     */
    public static void checkLogin() {
        STP_LOGIC.checkLogin();
    }
 
    /**
     * 判断当前请求是否存在 APP 登录态。
     */
    public static boolean isLogin() {
        return STP_LOGIC.isLogin();
    }
 
    /**
     * 获取当前 APP 用户登录 ID。
     */
    public static Long getLoginIdAsLong() {
        return STP_LOGIC.getLoginIdAsLong();
    }
 
    /**
     * 获取当前 APP 登录态的 token 信息。
     */
    public static SaTokenInfo getTokenInfo() {
        return STP_LOGIC.getTokenInfo();
    }
 
    /**
     * 获取底层 APP 登录态逻辑对象,供需要调用 Sa-Token 高级能力的服务复用。
     */
    public static StpLogic getStpLogic() {
        return STP_LOGIC;
    }
 
    /**
     * 获取当前请求携带的 token 值。
     */
    public static String getTokenValue() {
        return STP_LOGIC.getTokenValue();
    }
 
    /**
     * 注销当前 APP 登录态。
     */
    public static void logout() {
        STP_LOGIC.logout();
    }
}