개발삽질기

https 서로 다른 도메인간 쿠키 공유하기

딸기케잌🍓 2023. 9. 3. 11:25

요구사항

A앱과 B앱은 스프링부트로 구축했고, 서로 다른 도메인을 갖고 있다.

A웹 화면에서 특정 버튼 클릭시 로그인이 유지된 채로 B로 넘어가야 한다.

 

 

 

현재 A와 B의 application.yml

servlet:
session:
cookie:
name: JSESSIONID
same-site: none
secure: true
timeout: 36000

 



 

A앱 로그인시 쿠키

로그인시 요청 쿠키는 SESSION이고 응답 쿠키는 JSESSIONID이다.

이렇게 로그인 된 후에 

 

 

B 쿠키

B로 로그인 연동 요청을 보내면 요청쿠키에 A에서 받았던 

응답 쿠키인 JSESSIONID인 NjJhYjBlYzYtNzM5ZS00NzliLWE2MzktZjExOThjYmQ2NGY0 이 쿠키는 

프로필 Request Cookies에서 filtered out 되고 있다..

왜 ..?

 

이름이 레디스에서 발급해주는 SESSION이 아니고 JSESSIONID라서?

A와 B의 yml에서 cookie.name.JSESSIONID를 주석처리하고 다시 시도함

 

A 로그인시

 

B 로그인 연동시

A에 응답받은 SESSION 쿠키는 또 filtered out 됨

 

 

why cookies are filtered out 으로 구글링 고고

크롬 셋팅에서 서드파티 쿠키 차단을 꺼보라니!!!??!

안됨...

 

스프링 자체에서 allowedOriginPatterns 명시하라는 글도 있었음

.allowedOriginPatterns("https://*.xxx.co.kr")

어드민과 프로필에 둘다 추가했는데 안됨..

 

계속된 구글링 후

yml에서 쿠키 domain 값에 xxx.co.kr 넣음!! 된다 돼!!!!!!!!!!!!!!!!!

servlet:
session:
cookie:
same-site: none
secure: true # https일 때만 필요!
domain: xxx.co.kr  <--추가한 부분
timeout: 36000

 

 

 

다시

.allowedOriginPatterns("*");

로 원복했는데 여전히 다른 도메인간 로그인 잘 됨