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
'Backend > Spring' 카테고리의 다른 글
[Spring] Spring Security를 이용해서 로그인 구현하기 (0) | 2023.12.11 |
---|---|
[Spring] Ajax data를 Controller에서 받는 두 가지 방법 (0) | 2022.02.28 |
[Spring] 전자정부프레임워크 구조 (1) | 2021.07.01 |
reply