


바야흐로 7월 말.. 백엔드 리팩토링과 테스트 코드를 작성하고 있던 나에게 성큼 다가온 이슈...
브라우저에서 쿠키가 저장되지 않음
.
.
.
프론트엔드와 개발을 구분해서 하고있기 때문에 API 구현 후 postman과 swagger로 테스트를 마친 이후였다.
그래서 상상도 못했던 이슈였고... 프론트 팀원과 둘다 처음 겪는 문제여서 열심히 구글링을 해서 원인을 알게 되었다.
원인
- 백엔드 서버 = http, 프론트 서버 = http
- Chrome80 버전 이후 Cross Domain 상황에서의 Set-Cookie 정책이 변경됨
- SameSite=None 을 통해서 제약없이 쿠키 교환이 가능하나 해당 옵션을 사용하기 위해서는 Secure Cookie + https 통신을 통해서만 교환이 가능
해결
1. HTTPS 적용하기
https://un-lazy-midnight.tistory.com/172
대동덕지도 | Spring Boot + AWS EC2 도메인 연결 및 HTTPS 적용하기
발단 Https 적용은 프론트 기능 구현까지 모두 완료 후에 백엔드-프론트엔드 동시에 진행하려고 했던 작업이다. 하지만 백엔드가 먼저 해야만 했다. 왜냐하면 ... 더보기 https://un-lazy-midnight.tistory.c
un-lazy-midnight.tistory.com
2. 코드 변경 (AuthController의 login())
// RT 저장
ResponseCookie responseCookie = ResponseCookie.from("refresh-token", tokenDto.getRefreshToken())
.maxAge(COOKIE_EXPIRATION)
.path("/")
.httpOnly(true)
.sameSite("None")
.secure(true)
.build();
참고:
https://kindloveit.tistory.com/100
[Spring boot] Chrome Cookie SameSite 해결하기
보통 Backend 에서 사용자 인증을 완료하고 Token 전달의 수단으로 Cookie를 많이 사용한다. Backend 로직에서 브라우저 Cookie 저장을 위해서 다음과 같이 보통 설정을 하게 된다. package com.deeplify.tutorial.o
kindloveit.tistory.com
https://ppaksang.tistory.com/15
https://coding-factory.tistory.com/843
[Spring/Spring Boot] 서버 https 적용 (Certbot, Let's Encrypt)
이전 게시글 에서 로컬 환경에서 SSL 인증서를 발급하고 https 를 적용해 보았습니다. 하지만 로컬에서 발급한 인증서는 공식적인 CA(Certificate Authority) 기관에 등록되어있지 않기 때문에 원격 서버
ppaksang.tistory.com
[Web] 구글 Chrome SameSite 이슈에 대하여 (크롬 80)
2020.2.4 구글 크롬(Google Chrome) 80버전으로 업데이트되면서 크롬에 새로운 쿠키 정책이 적용되었다. 내용은 Cookie의 SameSite 속성의 기본 값이 "None"에서 "Lax"로 보안등급을 상향 조절하는 것이다. 구
coding-factory.tistory.com
'💻dev > 🔧오류와 해결' 카테고리의 다른 글
CentOS7에 Java17 수동으로 설치하기 (0) | 2024.03.25 |
---|---|
[해결] Spring Security WebSecurityConfigurerAdapter Deprecated 대체하기 (0) | 2023.08.09 |
[해결] (Spring) Ambiguous handler methods mapped for HTTP path 오류 (0) | 2023.08.02 |
[해결] AWS EC2 퍼블릭 IP 바뀜 -> 고정 IP 사용하기 (0) | 2023.07.04 |
[해결] EC2 서버가 자꾸 죽을 때.... SWAP 메모리 설정을 하자!(AWS EC2 프리티어 메모리 부족 해결방법) (0) | 2023.06.23 |



바야흐로 7월 말.. 백엔드 리팩토링과 테스트 코드를 작성하고 있던 나에게 성큼 다가온 이슈...
브라우저에서 쿠키가 저장되지 않음
.
.
.
프론트엔드와 개발을 구분해서 하고있기 때문에 API 구현 후 postman과 swagger로 테스트를 마친 이후였다.
그래서 상상도 못했던 이슈였고... 프론트 팀원과 둘다 처음 겪는 문제여서 열심히 구글링을 해서 원인을 알게 되었다.
원인
- 백엔드 서버 = http, 프론트 서버 = http
- Chrome80 버전 이후 Cross Domain 상황에서의 Set-Cookie 정책이 변경됨
- SameSite=None 을 통해서 제약없이 쿠키 교환이 가능하나 해당 옵션을 사용하기 위해서는 Secure Cookie + https 통신을 통해서만 교환이 가능
해결
1. HTTPS 적용하기
https://un-lazy-midnight.tistory.com/172
대동덕지도 | Spring Boot + AWS EC2 도메인 연결 및 HTTPS 적용하기
발단 Https 적용은 프론트 기능 구현까지 모두 완료 후에 백엔드-프론트엔드 동시에 진행하려고 했던 작업이다. 하지만 백엔드가 먼저 해야만 했다. 왜냐하면 ... 더보기 https://un-lazy-midnight.tistory.c
un-lazy-midnight.tistory.com
2. 코드 변경 (AuthController의 login())
// RT 저장
ResponseCookie responseCookie = ResponseCookie.from("refresh-token", tokenDto.getRefreshToken())
.maxAge(COOKIE_EXPIRATION)
.path("/")
.httpOnly(true)
.sameSite("None")
.secure(true)
.build();
참고:
https://kindloveit.tistory.com/100
[Spring boot] Chrome Cookie SameSite 해결하기
보통 Backend 에서 사용자 인증을 완료하고 Token 전달의 수단으로 Cookie를 많이 사용한다. Backend 로직에서 브라우저 Cookie 저장을 위해서 다음과 같이 보통 설정을 하게 된다. package com.deeplify.tutorial.o
kindloveit.tistory.com
https://ppaksang.tistory.com/15
https://coding-factory.tistory.com/843
[Spring/Spring Boot] 서버 https 적용 (Certbot, Let's Encrypt)
이전 게시글 에서 로컬 환경에서 SSL 인증서를 발급하고 https 를 적용해 보았습니다. 하지만 로컬에서 발급한 인증서는 공식적인 CA(Certificate Authority) 기관에 등록되어있지 않기 때문에 원격 서버
ppaksang.tistory.com
[Web] 구글 Chrome SameSite 이슈에 대하여 (크롬 80)
2020.2.4 구글 크롬(Google Chrome) 80버전으로 업데이트되면서 크롬에 새로운 쿠키 정책이 적용되었다. 내용은 Cookie의 SameSite 속성의 기본 값이 "None"에서 "Lax"로 보안등급을 상향 조절하는 것이다. 구
coding-factory.tistory.com
'💻dev > 🔧오류와 해결' 카테고리의 다른 글
CentOS7에 Java17 수동으로 설치하기 (0) | 2024.03.25 |
---|---|
[해결] Spring Security WebSecurityConfigurerAdapter Deprecated 대체하기 (0) | 2023.08.09 |
[해결] (Spring) Ambiguous handler methods mapped for HTTP path 오류 (0) | 2023.08.02 |
[해결] AWS EC2 퍼블릭 IP 바뀜 -> 고정 IP 사용하기 (0) | 2023.07.04 |
[해결] EC2 서버가 자꾸 죽을 때.... SWAP 메모리 설정을 하자!(AWS EC2 프리티어 메모리 부족 해결방법) (0) | 2023.06.23 |