You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on Dec 18, 2025. It is now read-only.
iOS 인앱 브라우저(Google App WebView 등)에서 OAuth 팝업 로그인 플로우 사용 시, safeLocalStorage.get() 호출에서 TypeError: null is not an object (evaluating 'localStorage.getItem') 에러가 발생합니다.
canUse() 체크가 모듈 초기화 시점에만 실행되어, 런타임에 localStorage 상태가 변경되는 경우 MemoStorage fallback이 동작하지 않습니다.
Expected behavior
safeLocalStorage가 런타임에도 안전하게 동작하여, localStorage 접근이 실패하면 MemoStorage로 fallback 되기를 기대합니다.
Package Scope
@toss/storageDescribe the bug
iOS 인앱 브라우저(Google App WebView 등)에서 OAuth 팝업 로그인 플로우 사용 시,
safeLocalStorage.get()호출에서TypeError: null is not an object (evaluating 'localStorage.getItem')에러가 발생합니다.canUse()체크가 모듈 초기화 시점에만 실행되어, 런타임에 localStorage 상태가 변경되는 경우 MemoStorage fallback이 동작하지 않습니다.Expected behavior
safeLocalStorage가 런타임에도 안전하게 동작하여, localStorage 접근이 실패하면 MemoStorage로 fallback 되기를 기대합니다.To Reproduce
window.open()으로 OAuth 팝업 창 열기safeLocalStorage.get()호출TypeError: null is not an object에러 발생재현 환경:
Possible Solution
각 메서드에서 런타임 try-catch로 MemoStorage fallback 처리:
기존 MemoStorage fallback 철학을 유지하면서, 런타임에도 안전하게 동작할 수 있습니다.
Additional context
canUse()는 모듈 로드 시 1회만 실행됨null로 변경되는 케이스