경주장

[인증 API] Remember Me 인증 본문

스프링/스프링 시큐리티

[인증 API] Remember Me 인증

달리는치타 2022. 2. 2. 21:43

1. Remember-Me 기능 - 세션이 만료되고 웹 브라우저가 종료된 후에도 어플리케이션이 사용자를 기억하는 기능

 

2. Remember-Me 쿠키에 대한 Http 요청을 확인 -> 토큰 기반 인증을 사용해 유효성을 검사하고 토큰이 검증되면 사용자는 로그인 된다.

 

http.rememberMe() : rememberMe 기능이 작동함

http.rememberMe()
        .rememberMeParameter("remember-me")     //파라미터 명
        .tokenValiditySeconds(3600)             //토큰 유효 시간
        .alwaysRemember(true)                   //항상 실행 여부
        .userDetailsService(userDetailsService()); //

 

 

 

1. SecurityContext의 Authentication 객체가 null일때

즉, 1.인증을 수행하지 않았거나 2. 인증한 세션이 만료되거나 3. 브라우저가 종료되어 세션이 끊긴경우이면서

요청의 헤더에 remember-me 쿠키가 포함된 경우

 

RememberMeAuthentication Filter가 동작한다.

 

2. remember-me 쿠키 값을 통해 프로세스를 거쳐 RememberMeAuthenticationToken이라는 인증 객체를 생성,

 AuthenticationManager가 전달받아 인증 처리를 수행한다. (RememberMeAuthenticationProvider를 통해)