요구사항
A앱과 B앱은 스프링부트로 구축했고, 서로 다른 도메인을 갖고 있다.
A웹 화면에서 특정 버튼 클릭시 로그인이 유지된 채로 B로 넘어가야 한다.
현재 A와 B의 application.yml
servlet:
session:
cookie:
name: JSESSIONID
same-site: none
secure: true
timeout: 36000
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
session:
cookie:
same-site: none
secure: true # https일 때만 필요!
domain: xxx.co.kr <--추가한 부분
timeout: 36000
다시
.allowedOriginPatterns("*");
로 원복했는데 여전히 다른 도메인간 로그인 잘 됨
'개발삽질기' 카테고리의 다른 글
https 인증서 설정 (0) | 2023.08.19 |
---|---|
[에러해결] /bin/sh: node: command not found (0) | 2023.03.09 |
[에러해결]Uncaught TypeError: Cannot read property 'style' of undefined (0) | 2020.12.07 |