2017-11-22 10 views
0

私が使用している現在のポップアップモードではなく、FirebaseUIをリダイレクトモードで使用したいと考えています。しかし、専用のログインURLを別に用意するのではなく、(FirebaseUIのUIコンテナとしてカスタムダイアログを使用して)任意のURLからログインできるようにします。FirebaseUIを専用サインインページなしでリダイレクトモードで使用するにはどうすればよいですか?

ログインプロセスを開始すると、ダイアログが表示され、ユーザーは認証プロバイダを選択し、認証Webサイトにリダイレクトされますが、Webサイトの元のURLにリダイレクトされます。

UIコンテナのダイアログは表示されず、ユーザがログイン中であることをウェブページが知らないので、firebaseUI.start()は呼び出されません。その結果、何も起こりません。ログインプロセス。

最初のリダイレクトにURLを指定する方法はありますか。私は最終的なsignInSuccessUrl設定パラメータについて話していませんが、私のウェブサイトに最初にリダイレクトするのに似た何かがありますか?

このようにして、ログイン処理を開始した元のURLを、ユーザーがログインフローの途中にいることをウェブページに知らせるフラグなどとともに送信することができます。 UIコンテナを開き、最後のリダイレクトを実行するにはfirebaseUI.start()を呼び出します。

答えて

0

任意のURLからFirebaseUIを起動できますが、基になるsignInWithRedirectは常に同じURLに戻ります。 startをリダイレクトすると、サインインが完了します。サインインUIを常に表示するとは限らない状況がある場合は、sessionStorageに保存するフラグpendingRedirectを使用して、UIをレンダリングする前に、戻ってくる。レンダリング後にそれをクリアします。

+0

ありがとうございました。安全でない可能性があるため、この機能はありませんか?私は最初の認証ステップの後に完全に異なるURLを指定することを意味しますか?最初のリダイレクトの後にURLに渡す追加のクエリ文字列パラメータを少なくとも指定することができるのは便利ではないでしょうか?それとも私だけかもしれません... – BadCash

+0

実際にFirebaseUIはすでに同様の方法で保留状態を追跡しています。彼らは単に公開しません。公開するには良い機能のようだ。また、プロセスを開始するときにそれを検出するための#hashパラメータを追加することもできます。なぜそれが安全でないのか分かりません。 – bojeil

関連する問題