iframe 크롬 로그인 안되는 현상
본문
a사이트에서 b사이트를 iframe로 불러와 로그인 하려니
크롬에서 로그인이 되지않습니다.
samesite 설정을해주어야 한다고 하셔서
<script>
document.cookie = "safeCookie1=foo; SameSite=Lax";
document.cookie = "safeCookie2=foo";
document.cookie = "crossCookie=bar; SameSite=None; Secure";
</script>
위 코드를 a, b사이트 user.config에 모두 넣어봐도
여전히 로그인이 되지않습니다 ㅠㅠ
어떻게 해야 하는지 도움을 부탁드립니다.
답변 6
예를 들어서 a 사이트가 있고 b 사이트가 있으면
크롬 브라우저에서 a 사이트에서 iframe 으로 b 사이트를 열어서 로그인 하려면
<iframe src="b사이트주소"></iframe>
크롬 브라우저는 samesite 이슈 때문에 조건을 충족해야 합니다.
그 조건은 반드시 b사이트가 https 이어야 하고 cookie 에 samesite none 를 해야 하는것입니다.
cookie 에 samesite none 을 설정하려면 반드시 https 이어야 하며, http 환경에서는 cookie 에 samesite none 조건을 걸수가 없습니다.
그누보드 영카트 데모사이트를 예로 들면
https://demo.sir.kr/gnuboard5/
크롬 개발자도구를 열어서 application 탭에서 Cookies 항목을 보시면 (아래 이미지 참고)
php 의 기본 세션쿠키인 PHPSESSID 에 sameSite None 이 된 것을 확인할수 있습니다.
그래서 다른 사이트에서 https://demo.sir.kr/gnuboard5/ 주소를 iframe 을 하면 로그인이 가능하다는 것을 확인할수 있습니다.
지금 배포하고 있는 그누보드5는 https 환경이고 본인인증 사용시에만 PHPSESSID 에 sameSite None 이 되며, 영카트5는 https 환경이면 PHPSESSID 에 sameSite None 이 됩니다.
결론 : 질문자 환경이 http 이면 크롬브라우저에서 불가능 합니다.
저두 같은현상.... 궁금하네요.
1. 크롬 주소 입력란에 “chrome://flags”를 입력하여 “Experiments” 설정 화면으로 이동해서 해결은 했지만 내 컴퓨터에서만 해결된거구 근본적인 해결은 진서기님 링크해 주신 방법에 나와 있는 방법대로 진행해야 하지 싶군요..ㅠ
어려울것 같진 않습니다.
다만 지금 회사업무 때문에 시간이 없어서...ㅠ
주말에 시도해볼 생각입니다.
참고로 크롬만 로그인 안되는것 아닐겁니다.
저는 맥(Mac)를 사용하는 사파리도 로그인 안됩니다.
파이어폭스는 되구요.