| | |
| | | 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("用户已登录,请勿重复登录"); |
| | | } |