[Spring Boot] 로그인 기능 구현 (9) - 자동 로그인 구현 (Spring Security - Remember Me)

2024. 5. 5. 22:59· Spring Boot
목차
  1. 1. 자동 로그인
  2. 2. Remember Me
  3. 3. 구현 방법
  4. 3-1. login.html
  5. 3-2. SecurityConfig
  6. 4. 실행 결과
  7. 4-1. 로그인 후
  8. 4-2. 로그아웃 후

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] Whitelabel Error Page 대신 원하는 에러 페이지 적용  (0) 2024.04.04
[Spring Boot] 스프링 메일 전송 방법 ( + google Gmail SMTP 설정)  (0) 2024.03.28
[Spring Boot] 스프링 부트 엑셀 파일 업로드 예제( + 엑셀 파일 열기로 업로드 확인 )  (0) 2024.03.28
  1. 1. 자동 로그인
  2. 2. Remember Me
  3. 3. 구현 방법
  4. 3-1. login.html
  5. 3-2. SecurityConfig
  6. 4. 실행 결과
  7. 4-1. 로그인 후
  8. 4-2. 로그아웃 후
'Spring Boot' 카테고리의 다른 글
  • [Thymeleaf] Thymeleaf 기본 문법 (+ 적용 방법)
  • [Spring Boot] 프로젝트에 Swagger 적용, Swagger 어노테이션 정리
  • [Spring Boot] Whitelabel Error Page 대신 원하는 에러 페이지 적용
  • [Spring Boot] 스프링 메일 전송 방법 ( + google Gmail SMTP 설정)
공대생안씨
공대생안씨
전자공학과 학부생의 코딩 일기
티스토리
|
공대생안씨
공대생의 코딩 일기
공대생안씨
글쓰기
|
관리
전체
오늘
어제
  • All Categories (151)
    • Spring Boot (46)
      • JPA (7)
      • Lombok (2)
    • Java (21)
    • DevOps (3)
      • CI,CD (8)
    • Database (7)
      • MySQL (5)
      • MongoDB (1)
      • H2 (1)
    • Trouble Shooting (5)
    • FE (4)
    • IntelliJ (3)
    • Git (3)
    • Algorithm (41)

블로그 메뉴

  • 홈
  • 태그
  • Github

공지사항

인기 글

hELLO · Designed By 정상우.v4.2.2
공대생안씨
[Spring Boot] 로그인 기능 구현 (9) - 자동 로그인 구현 (Spring Security - Remember Me)
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.