Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

多账号情况下如何设置不同有效期。 #725

Open
qiuyueovo opened this issue Jan 8, 2025 · 0 comments
Open

多账号情况下如何设置不同有效期。 #725

qiuyueovo opened this issue Jan 8, 2025 · 0 comments

Comments

@qiuyueovo
Copy link

qiuyueovo commented Jan 8, 2025

对以下问题有疑问:

我现在有账号体系user和app。
yml中默认配置的是user的。
默认为:
is-concurrent: true
is-share: true
我需要为app配置一个隔离开的环境。
当app登录的时候返回token
1、当剩余有效期小于 30 分钟时,返回一个新的token,这会同时存在两个有效的 token。
2、剩余有效期大于等于 30 分钟时,调用本接口会返回原有的 token。

第二个我可以简单实现。但是不知道第一个的情况下如何实现呢。

例:

    public SaResult login() {
        // 使用 app 账号体系
        // 校验token是否过期
        if (checktoken  ) {
            long remainingTime = StpAppUtil.getTokenTimeout();
            if (remainingTime >= 30 * 60) { // 剩余时间大于等于 30 分钟
                log.info("剩余时间大于等于 30 分钟");
                return SaResult.data(StpAppUtil.getTokenValue()); // 返回原有 Token
            } else { // 剩余时间小于 30 分钟
                log.info("剩余时间小于 30 分钟");
                String newToken = StpAppUtil.createLoginSession(1);
                // 生成新 Token
                //StpAppUtil.login(1, 2 * 60 * 60); // 登录并生成 Token
                //StpAppUtil.login
                return SaResult.data(newToken); // 返回新 Token
            }
        } else { // 首次登录
            log.info("首次登录");
            StpAppUtil.login(1, 2 * 60 * 60); // 登录并生成 Token
            return SaResult.data(StpAppUtil.getTokenValue()); // 返回 Token
        }
    }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant