FirebaseのAuthenticationを使ったGoogle認証で、2回目以降、Googleアカウントの選択画面が表示されない問題の対処方法

パソコン

FirebaseのAuthenticationを使って、WebサービスにGoogle認証ログインを実装したところ、試用した方から、ある問題の報告を受けました。

ログインするとき、1度目に選んだGoogleアカウントで勝手にログインされてしまいます。ほかのアカウントを使いたいのに選択できません。

僕が試した環境では起きていなかったので、何か条件があるのだと思うのですが、それは不明です。

とはいえ、とにかく問題が起きている人がいるので、解決方法を調べてみました。

この記事は、同じ問題で困ってる人のため、自分の備忘メモも兼ねて書き残すものです。

(技術的に間違っていることがありましたら、ぜひコメントで教えてください。)

スポンサーリンク

検索したキーワード

以下のキーワードでGoogle検索しました。

「firebase auth can’t select other account」

見つけた質問と回答

「Firebase google auth automatically selecting user. How to force it to select account」

Firebase google auth automatically selecting user. How to force it to select account
If in any browser, when i am logged in with single google account and try to invoke 'sign in with google' option on firebase, it is automatically logging-in to ...

パラメータについての公式ドキュメント

「Authentication URI parameters」

OpenID Connect  |  Google Identity  |  Google Developers

promptパラメータの値”select_account”の部分

変更したコード

どういう風に書けば伝わりやすいかわからないのですが、一番シンプルに書くと以下のような感じです。(FirebaseでGoogle認証を実装し終わってる人なら、自分のコードでどこが該当するか、すぐに分かると思います)

ちなみに、私が変更を加えたのは、auth.service.tsファイルです。(ファイル名は人により違うと思いますが…)

// 変更前

const provider = new firebase.auth.GoogleAuthProvider();

(中略)

.signInWithPopup(provider)

↓setCustomParameters()を追加、引数に{prompt: ‘select_account’}を指定しました。

// 変更後

const provider = new firebase.auth.GoogleAuthProvider()
    .setCustomParameters({
        prompt: 'select_account'
    });

(中略)

.signInWithPopup(provider)

最低限の記録のため短いですが、以上です。

もしこの情報が少しでもあなたのお役に立てば幸いです!

それではまた(/・ω・)/

コメント

タイトルとURLをコピーしました