liusuyi
2025-12-22 8c94d8fb9b374cec4626ec01440fa077e62fa67e
ard-framework/src/main/java/com/ard/framework/security/handle/CustomAuthenticationSuccessHandler.java
@@ -1,19 +1,28 @@
package com.ard.framework.security.handle;
import com.ard.common.constant.CacheConstants;
import com.ard.common.constant.Constants;
import com.ard.common.core.redis.RedisCache;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class CustomAuthenticationSuccessHandler {
    @Value("${token.soloLogin}")
    private boolean soloLogin;
    @Autowired
    private RedisCache redisCache;
    public void onAuthenticationSuccess(Long userId) {
        // 允许多端登录,直接放行
        if (soloLogin) {
            return;
        }
        // 检查 Redis 中是否已有该用户登录
        String key = Constants.LOGIN_USERID_KEY + userId;
        String key = CacheConstants.LOGIN_USERID_KEY + userId;
        if (redisCache.hasKey(key)) {
            throw new RuntimeException("用户已登录,请勿重复登录");
        }