It’s now or never

IT系の技術ブログです。気になったこと、勉強したことを備忘録的にまとめて行きます。

Firebase AuthのsignInWithRedirectがSafariで動かない件のメモ

概要

FirebaseAuthの signInWithRedirect をそのまま使うと、Safariで動かないという問題があったので事象の理解と対応のメモ

問題のサマリー

問題のissueはhttps://github.com/firebase/firebase-js-sdk/issues/6716に上がっている。

要約すると、

  • リダイレクト先のデフォルトは <project>.firebaseapp.com というドメインになる
  • FirebaseAuthのログイン処理にiframeを使っているが、クロスドメインになると一部のブラウザ(Safari, Firefox)でセキュリティエラーになるため使用できない

解決方法

issueにも書かれているが、Googleが正式にドメインを提示している。

https://firebase.google.com/docs/auth/web/redirect-best-practices?hl=ja

詳しくは、記事を見てもらえば良いが、主な解決は以下。

  • クロスドメインにならないように、デフォルトの<project>.firebaseapp.comではなく自アプリのドメインを使うようにする
  • signInWithRedirect を使うのをやめ signInWithPopup を使用する
  • signInWithRedirectもsignInWithPopupも使わず自分で認証処理を書く