기능 설명
OAuth2 인증 토큰을 HttpOnly 쿠키로 전환
Secure 속성을 추가 후
HTTPS환경에서만 쿠키가 전송되도록 변경
기능 도입 목적
- XSS 공격으로부터 토큰 탈취 완전 차단 (HttpOnly)
- HTTPS 환경에서만 쿠키 전송 보장 (Secure)
- JavaScript를 통한 토큰 직접 접근 차단
상세 스펙
-
OAuth2SuccessHandler.kt 수정
- HttpOnly 쿠키 설정: accessCookie.isHttpOnly = true
- 환경별 Secure 설정: accessCookie.secure = (environment == "prod") [논의 후 필요 할 시]
- refreshCookie도 동일 적용
-
AuthController.kt 수정
- /refresh 엔드포인트에서 새 토큰을 HttpOnly 쿠키로 설정
- /logout 엔드포인트에서 HttpOnly 쿠키 삭제 로직 추가
- 응답 body에서 토큰 제거
-
CORS 설정 추가
- allowCredentials = true 설정
- withCredentials 요청 허용
-
환경 구분 프로퍼티 추가
- application.yml에 app.environment 설정 [논의 후 필요 할 시]
HttpOnly 쿠키 적용 후
JavaScript 쿠키 접근 방식 변경 필요
Front 부분
-
request.ts 수정
axios 인터셉터 수정, withCrendetials? 설정 필요
-
useAuth.tsx 수정
토큰 읽기 로직 제거
서버 API 응답 기반 로그인 상태 판단으로 변경
로그아웃시 서버 api호출(백엔드 구현필요<-2. AuthController.kt 수정에 써있음)로 쿠키 삭제
-
기존 쿠키 직접 접근 코드 제거
-> 서버 기반 토큰 관리로 전환 (setCookie, removeCookie 관련 메서드 제거)
기능 설명
OAuth2 인증 토큰을 HttpOnly 쿠키로 전환
Secure 속성을 추가 후
HTTPS환경에서만 쿠키가 전송되도록 변경
기능 도입 목적
상세 스펙
OAuth2SuccessHandler.kt 수정
AuthController.kt 수정
CORS 설정 추가
환경 구분 프로퍼티 추가
HttpOnly 쿠키 적용 후
JavaScript 쿠키 접근 방식 변경 필요
Front 부분
request.ts 수정
axios 인터셉터 수정, withCrendetials? 설정 필요
useAuth.tsx 수정
토큰 읽기 로직 제거
서버 API 응답 기반 로그인 상태 판단으로 변경
로그아웃시 서버 api호출(백엔드 구현필요<-2. AuthController.kt 수정에 써있음)로 쿠키 삭제
기존 쿠키 직접 접근 코드 제거
-> 서버 기반 토큰 관리로 전환 (setCookie, removeCookie 관련 메서드 제거)