|
|
@ -3,6 +3,8 @@ package org.dromara.auth.listener;
|
|
|
|
import cn.dev33.satoken.config.SaTokenConfig;
|
|
|
|
import cn.dev33.satoken.config.SaTokenConfig;
|
|
|
|
import cn.dev33.satoken.listener.SaTokenListener;
|
|
|
|
import cn.dev33.satoken.listener.SaTokenListener;
|
|
|
|
import cn.dev33.satoken.stp.SaLoginModel;
|
|
|
|
import cn.dev33.satoken.stp.SaLoginModel;
|
|
|
|
|
|
|
|
import cn.dev33.satoken.stp.StpUtil;
|
|
|
|
|
|
|
|
import cn.hutool.core.convert.Convert;
|
|
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
|
|
import cn.hutool.http.useragent.UserAgent;
|
|
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
|
import cn.hutool.http.useragent.UserAgentUtil;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
@ -85,7 +87,10 @@ public class UserActionListener implements SaTokenListener {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doLogout(String loginType, Object loginId, String tokenValue) {
|
|
|
|
public void doLogout(String loginType, Object loginId, String tokenValue) {
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
|
|
|
|
|
|
|
TenantHelper.dynamic(tenantId, () -> {
|
|
|
|
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
|
|
|
|
});
|
|
|
|
log.info("user doLogout, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
log.info("user doLogout, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -94,7 +99,10 @@ public class UserActionListener implements SaTokenListener {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doKickout(String loginType, Object loginId, String tokenValue) {
|
|
|
|
public void doKickout(String loginType, Object loginId, String tokenValue) {
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
|
|
|
|
|
|
|
TenantHelper.dynamic(tenantId, () -> {
|
|
|
|
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
|
|
|
|
});
|
|
|
|
log.info("user doLogoutByLoginId, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
log.info("user doLogoutByLoginId, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -103,7 +111,10 @@ public class UserActionListener implements SaTokenListener {
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
@Override
|
|
|
|
@Override
|
|
|
|
public void doReplaced(String loginType, Object loginId, String tokenValue) {
|
|
|
|
public void doReplaced(String loginType, Object loginId, String tokenValue) {
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
String tenantId = Convert.toStr(StpUtil.getExtra(tokenValue, LoginHelper.TENANT_KEY));
|
|
|
|
|
|
|
|
TenantHelper.dynamic(tenantId, () -> {
|
|
|
|
|
|
|
|
RedisUtils.deleteObject(CacheConstants.ONLINE_TOKEN_KEY + tokenValue);
|
|
|
|
|
|
|
|
});
|
|
|
|
log.info("user doReplaced, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
log.info("user doReplaced, useId:{}, token:{}", loginId, tokenValue);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|