簡體   English   中英

Firebase 身份驗證提供商悄悄地將密碼更改為 google.com

[英]Firebase authentication provider silently changes from password to google.com

我為我的 web 應用程序使用 firebase 身份驗證,三個提供商:電子郵件密碼、谷歌或 facebook。我啟用了選項“每個 email 地址一個帳戶”。

當用戶使用電子郵件密碼(地址為 gmail)注冊,然后使用谷歌登錄時,我希望收到異常“auth/account-exists-with-different-credential”,但我沒有。 他的 providerId 更改為google.com並且他不能再使用他的密碼(拋出“auth/wrong-password”)。

這是正常行為嗎?

Firebase 身份驗證具有特定 email 地址的首選提供者的概念。 最常見的是 google.com 是@gmail.com地址的首選提供商,但我認為它們也存在於 Facebook 和 Microsoft 帳戶中。

如果現有帳戶稍后再次從首選提供商處注冊,則該提供商將覆蓋現有用戶帳戶。 沒有辦法改變這種行為(我知道)。

另見:

這就是我解決它的方式: https://firebase.google.com/docs/auth/android/account-linking

只需鏈接“帳戶”。

2023 年更新:

您現在可以選擇是否要允許“用戶帳戶鏈接”。 例如,如果您不允許多個帳戶使用相同的 email 地址,則用戶無法創建使用地址為 email 的 Google 帳戶登錄的新帳戶 ex@gmail.com 如果已有帳戶使用email 地址 ex@gmail.com 和密碼。

如果您確實允許多個帳戶使用相同的 email 地址,則您應用的登錄流程不能依賴 email 地址來識別用戶帳戶。

您可以在 Firebase 身份驗證的設置下找到它。

使用此功能有一些注意事項,請在此處閱讀

Firebase 身份驗證設置

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM