如果用户之前已经过身份验证,如何在Firebase中强制使用Google OAuth弹出窗口?

时间:2016-03-03 17:15:40

标签: oauth firebase google-oauth firebase-authentication

每当用户之前通过Google进行身份验证时,它会自动默认使用该帐户在后续尝试中登录。我想消除这种情况并强制弹出/重定向,以便拥有多个Google帐户的用户可以选择使用哪个。怎么样?

背景:

自动登录功能对我来说是个问题,因为我有一组白名单的电子邮件供用户使用我的应用程序。如果Google用户在首次登录时选择了错误的帐户,则他们无法返回并选择与其列入白名单的电子邮件相关联的帐户。

3 个答案:

答案 0 :(得分:2)

正如@nvnagr所说,您可以使用以下代码执行此操作:

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

但我认为您需要将firebase版本更新为3.6.0。

答案 1 :(得分:1)

Google支持身份验证网址中的参数来处理此问题。

如果您在Google身份验证请求中添加prompt = select_account,则会强制用户进行帐户选择。查看提示的详细信息和其他值。

https://developers.google.com/identity/protocols/OpenIDConnect#authenticationuriparameters

我不确定是否有一种通过firebase api添加此参数的简单方法。

答案 2 :(得分:0)

当您调用oAuth函数时,您可以传递第三个选项参数,以仅对会话进行最后一次身份验证。这应该可以解决您的问题。 Docs

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithOAuthPopup("google", function(error, authData) {
  if (error) {
    console.log("Login Failed!", error);
  } else {
    console.log("Authenticated successfully with payload:", authData);
  }
}, {
  remember: 'sessionOnly'
});