728x90
반응형
Remember Me
로그인 세션(JESSIONID)이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능
해당 기능을 구현하기 위해서는 스프링 시큐리티가 적용되어 있어야 한다.
import lombok.RequiredArgsConstructor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityCustomizer;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.web.SecurityFilterChain;
@Configuration
@RequiredArgsConstructor
public class SecurityConfig {
private final UserDetailsService userDetailsService;
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
...
http.rememberMe() // 사용자 계정 저장
.rememberMeParameter("remember") // default 파라미터는 remember-me
.tokenValiditySeconds(604800) // 7일(default 14일)
.alwaysRemember(false) // remember-me 기능 항상 실행
.userDetailsService(userDetailsService); // 사용자 계정 조회
return http.build();
}
...
}
<!-- 로그인 상태 유지 체크박스 -->
<input class="form-check-input" type="checkbox" th:field="*{remember}" id="remember" />
개발자 도구에서 확인해 보면 remember-me 토큰가 생성됐으며, 토큰 만료일이 7일 후로 설정된 것을 볼 수 있다.
이렇게 생성된 remember-me 토큰은 로그아웃, 로그인 사태 유지 체크박스 해제 후 재 로그인을 통해 삭제가 가능하다.
728x90
반응형
'Spring > Spring Security' 카테고리의 다른 글
[Spring Secururity ERROR] 스프링 빈 순환 참조 에러 The dependencies of some of the beans i (1) | 2022.10.30 |
---|---|
[Spring Security] Spring Security 설정하기 (0) | 2022.10.29 |
[Spring Security] 유저별 권한 설정 (0) | 2022.10.28 |
[Spring Security] 동시 로그인 제한하기(동시 세션 제어) (0) | 2022.10.28 |
[Spring Security] WebSecurityConfigurerAdapter Deprecated 해결 (0) | 2022.10.27 |