基本场景
Firebase Auth 中有一个用户,其用户 ID1234
和电子邮件user@email.com
与附加的 facebook 提供商链接。
使用 OpenID Connect 提供者登录
- 在 Google Cloud Platform 的 Identity Platform 中创建 OpenIDConnect 提供程序
- 使用新创建的提供商使用电子邮件登录
user@email.com
结果:您将收到auth/account-exists-with-different-credential
发回凭据的错误。这是预期的行为。
然而:
使用 SAML 提供者登录
- 在 Google Cloud Platform 的 Identity Platform 中创建 SAML 提供程序
- 使用新创建的提供商使用电子邮件登录
user@email.com
结果:SAML 提供程序自动链接到原来的 firebase 用户,用户 ID 仍然存在1234
。但是,它也替换了之前设置的 Facebook Provider。
这是一个已知的问题?难道我做错了什么?真正的问题是providerID 的替换,但不一致似乎令人不安。
- 更新 -
对 OIDC 和 SAML 执行身份验证,类似于以下文档: https ://cloud.google.com/identity-platform/docs/how-to-enable-application-for-oidc
具体来说:
let provider = new firebase.auth.OAuthProvider(providerID);
this.firebaseApp.auth().
signInWithPopup(provider)
providerID
或者saml.someprovider
在哪里oidc.someprovider