사파리 IFRAME에서는 같은 도메인의 로컬스토리지 공유가 안되요

msa로 만들어진 서비스들의 sso 관련 처리를 하는데 겪었던, 사파리에서 iframe안의 로컬스토리지가 크롬과는 다르게 동작하는 것을 공유한다.

사파리 IFRAME에서는 같은 도메인의 로컬스토리지 공유가 안되요

https://stackoverflow.com/questions/20401751/iframe-localstorage-on-safari-and-safari-mobile

위 스택오버플로우의 질문과 같은 상황인데,

a.domain.com, b.domain.com

두개의 도메인으로 서비스가 운영되는데, 사파리의 IFRAME에서 로컬스토리지가 공유가 안된다.

a.domain.com 에서 로컬스토리지에 데이터를 설정하고, b.domain.com 에 이동해서 직전에 a.domain.com의 로컬스토리지에 설정한 데이터를 가져오려고, 안보이는 iframe에서 a.domain.com을 호출했다. 그런데 웬 걸? 아이프레임 안에서 로드된 a.domain.com 에 로컬스토리지에는 아무것도 담겨있지 않았다. 크롬에서는 이상없는 부분이라, 두 브라우저에서 로컬스토리지를 다르게 처리하는 부분이 있는 것이다.

(a에서 넣은 것을 b안의 아이프레임에서 호출된 a에서 꺼낼수가 없다. )
(a에서 넣은 것을 b안의 아이프레임에서 호출된 a에서 꺼낼수가 없다. )

만약 JWT를 사용하고 있고 여러도메인을 가진 서비스들 사이에서 SSO 로그인 처리를 하는데, access_token을 어디에 저장할지 localstorage 와 쿠키 사이에서 고민하고 있다면, 무조건 쿠키로 하세요 라고 말해주고 싶다.