1. 자동 로그인
- 브라우저를 종료하고 다시 접속 시 따로 로그인하지 않더라도 자동으로 로그인 상태가 유지됨을 뜻함
- 거의 모든 웹사이트의 로그인 화면에서 자동 로그인 기능을 찾아볼 수 있음
2. Remember Me
- 스프링 시큐리티가 제공하는 로그인 상태 유지 기능
- 서버가 유저의 정보와 토큰(Remember Me 토큰을 생성)을 쿠키 형태로 저장
- 다음 접속 시, 서버는 쿠키에 저장된 토큰 확인 > 유효한 토큰이면 자동으로 로그인 처리함
- (세션이 만료되더라도 쿠키가 남아있어 자동 로그인이 가능한 것임)
- 토큰이 유출될 가능성이 존재하므로 보안 강화가 중요할 것!
- 로그아웃 시 자동으로 쿠키 삭제됨
3. 구현 방법
3-1. login.html
- 로그인 유지 기능 활성화 할 체크박스 추가
<p>
<label for="remember-me" style>로그인 유지</label>
<input type="checkbox" id="remember-me" name="remember-me" />
</p>
- checkbox의 id와 이름을 remember-me 로 지정
- 기본적으로 스프링 시큐리티가 제공하는 메뉴얼대로 지정한 것
- 원하는대로 변경 가능
3-2. SecurityConfig
// Remember Me : 자동로그인
http
.rememberMe(rememberMe -> rememberMe
.key("security!!")
.rememberMeParameter("remember-me")
.tokenValiditySeconds(60*60*24*30)
.authenticationSuccessHandler(new CustomAuthenticationSuccessHandler())
);
- .key
- Remember Me 토큰을 암호화하는 데 사용되는 키 설정
- .remeberMeParameter
- login.html에서 설정했던 체크박스의 name (위에서 변경했더라면 변경한대로 작성해야 함)
- .tokenValiditySeconds
- Remember Me 토큰의 유효 기간 설정
- 60*60*24*30 : 30일 (60초 * 60분 * 24시간 * 30일) 로 설정
- .authenticationSuccessHandler
- 로그인에 성공했을 때 실행되는 handler 설정
- 만약 사용자 정의 핸들러를 사용하지 않는다면 생략해도 무방함
4. 실행 결과
4-1. 로그인 후
- JSESSIONID 와 함께 remember-me 라는 쿠키가 생성됨
4-2. 로그아웃 후
- remember-me 쿠키가 삭제됨을 확인
'Spring Boot' 카테고리의 다른 글
[Thymeleaf] Thymeleaf 기본 문법 (+ 적용 방법) (0) | 2024.08.11 |
---|---|
[Spring Boot] 프로젝트에 Swagger 적용, Swagger 어노테이션 정리 (0) | 2024.05.11 |
[Spring Boot] 구매한 도메인을 EC2에 연결 (AWS Route 53, 가비아) (0) | 2024.04.04 |
[Spring Boot] Whitelabel Error Page 대신 원하는 에러 페이지 적용 (0) | 2024.04.04 |
[Spring Boot] 스프링 메일 전송 방법 ( + google Gmail SMTP 설정) (0) | 2024.03.28 |