View

로그인 인증 구현 방식에는 ①session cookie 방식과 ②jwt 토큰 방식이 존재한다.  
 

▶️ Cookie

쿠키란 서버가 사용자의 웹 브라우저에 저장하는 데이터로 Key:Value의 String 형식으로 이루어짐

1️⃣ 클라이언트에 서버로 로그인을 요청하고 Header에 사용자 식별 ID를 쿠키에 담아 전달
2️⃣ 클라이언트에서는 해당 쿠키를 저장해두고 사이트에 접속할 때마다 서버에 쿠키 함께 전달
 

쿠키의 용도

  • 30일간 다시 보지 않기
  • 비로그인 쇼핑몰 장바구니
  • 최근 검색 결과
  • ID 저장, 자동 로그인

 

▶️ Session

쿠키를 이용하여 로그인 처리를 하게 되면 여러가지 보안 이슈가 있음
로그인 정보(노출되면 안되는 중요한 정보)는 모두 서버에 저장해야 되며 저장된 정보를 매핑할 수 있는 임의의 토큰 Session ID를 부여함
Key : 세션 ID, Value : 로그인 정보 를 서버에 저장하고 Key값은 쿠키를 통해 클라이언트에 전달

세션 생성 방법

1️⃣ Spring에서 제공하는 HttpServletRequest 객체에서 getSession()을 통해 Session 가져옴

// Session이 있으면 가져오고 없으면 null return
HttpSession session = httpServletRequest.getSession(false);
// Session이 있으면 가져오고 없으면 Session을 생성해서 return (default = true)
HttpSession session = httpServeltRequest.getSession(true);

2️⃣ Session 생성 후 setAttribute()를 통해 이 세션의 Key, Value 값을 넣어줌

session.setAttribute("userId", user.getId());

 

▶️ Cookie & Session vs JWT

728x90
Share Link
reply
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31