[Spring Security] Remember Me 구현하기
2024. 1. 4. 14:22ㆍ백엔드/Spring Boot
# Remember Me 기능이란
- 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능이다.
Ex. 사용자 ID 기억하기, 자동 로그인 - Remember-Me 쿠키에 대한 HTTP 요청을 확인 후 토큰 기반 인증을 사용해 유효성을 검사하고 검증이 완료되면 로그인이 성공적으로 이루어진다.
- 사용자 라이프 사이클
- 인증 성공 👉 Remember-Me 쿠키 설정
- 인증 실패 👉 쿠키가 존재하면 쿠키 무효화
- 로그아웃 👉 쿠키가 존재하면 쿠키 무효화
# Remeber Me API에 대하여 알아보자
- rememberMeParameter() : remember-me 파라미터 이름 설정, 기본 파라미터명은 remember-me
- tokenValiditySeconds() : 쿠키 만료 시간 설정, Default : 14일
- alwaysRemember() : remember-me 기능 항상 실행
- userDetailsService() :필수, 사용자 객체를 조회할 클래스 정보
@Configuration
@EnableWebSecurity
public class SecurityConfig {
private final UserDetailsService userDetailsService;
@Autowired
public SecurityConfig(UserDetailsService userDetailsService) {
this.userDetailsService = userDetailsService;
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
// 페이지 인증, 로그인, 로그아웃 코드 생략...
// rembmerme
http.rememberMe(
remember -> remember
.rememberMeParameter("remember") // remember-me 파라미터 이름 설정, 기본 파라미터명은 remember-me
.tokenValiditySeconds(3600) // 쿠키 만료 시간 60분으로 설정, Default : 14일
.alwaysRemember(true) // 리멤버 미 기능이 활성화되지 않아도 항상 실행
.userDetailsService(userDetailsService) // 사용자 객체를 조회
);
return http.build();
}
Reference
인프런 '스프링 시큐리티 - Spring Boot 기반으로 개발하는 Spring Security' - 정수원
스프링 시큐리티 강의 - 인프런
초급에서 중.고급에 이르기까지 스프링 시큐리티의 기본 개념부터 API 사용법과 내부 아키텍처를 학습하게 되고 이를 바탕으로 실전 프로젝트를 완성해 나감으로써 스프링 시큐리티의 인증과
www.inflearn.com
'백엔드 > Spring Boot' 카테고리의 다른 글
[Spring Security] 세션 제어하기 (0) | 2024.01.04 |
---|---|
[Spring Security] AnonymousAuthenticationFilter (1) | 2024.01.04 |
[Spring Security] Logout 구현하기 (1) | 2024.01.04 |
[Spring Security] Form Login 구현하기 (2) | 2024.01.04 |
[Spring Security] Security Config 파일 만들기 (0) | 2024.01.04 |