firebase - Google 登录弹出窗口自动选择让我登录的用户

标签 firebase authentication firebase-authentication nuxt.js

我正在使用 firebase google nuxt 库来通过 Google 登录。

nuxt.config.js中的设置

  firebase: {
    config: {
      apiKey: 'XXXXXXXX',
      authDomain: 'XXXXXXXX',
      databaseURL: 'XXXXXXXX',
      projectId: 'XXXXXXXX',
      storageBucket: 'XXXXXXXX',
      messagingSenderId: 'XXXXXXXX',
      appId: 'XXXXXXXX',
    },
    services: {
      auth: {
        persistence: 'local',
        initialize: {
          onAuthStateChangedMutation: 'XXXXXXXX',,
          onAuthStateChangedAction: 'XXXXXXXX',
          subscribeManually: false,
        },
        ssr: false, // default
        emulatorPort: 'XXXXXXXX',
        emulatorHost: 'XXXXXXXX',
      },
      google: {
        clientId: 'XXXXXXXX',
      },
    },
  },

使用

  signInWithGooglePopup: function ({ dispatch }) {
    const provider = new this.$fireModule.auth.GoogleAuthProvider();

    const auth = this.$fire.auth

    return Promise.resolve()
      .then(() => auth.signInWithPopup(provider))
  }

我设法登录系统,但出现问题,如果 Google 中保存了一封电子邮件,则 Google 登录窗口(登录弹出窗口)不会提供选择我是否要使用现有保存的电子邮件登录的选项或添加一个新的。 Google 登录窗口(弹出窗口)会自动使用他们已知的电子邮件让我登录。这对于我的应用程序来说不是一个好的行为。

我尝试在每次调用 Google 登录窗口(弹出窗口)时进行额外的注销,但问题并未解决。

我尝试过的示例

  signInWithGooglePopup: function ({ dispatch }) {
    const provider = new this.$fireModule.auth.GoogleAuthProvider();

    const auth = this.$fire.auth

    return Promise.resolve()
      .then(() => auth.signOut())
      .then(() => auth.signInWithPopup(provider))
  }

enter image description here

帮助我弄清楚如何让 Google 登录窗口(弹出窗口)建议我想要哪个用户登录系统,而不是为我决定。

最佳答案

解决方案是将自定义参数添加到 GoogleAuthProvider:

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

关于firebase - Google 登录弹出窗口自动选择让我登录的用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72290910/

相关文章:

firebase - setValue() 和 updateChildren() 之间的区别?

javascript - firebase实时数据库获取匹配对象的键

java - Linksys 路由器 Web 管理 - 在 .NET 中自动登录

ios - 使用 Swift 3 检查用户身份验证错误代码

javascript - firebase auth verifyBeforeUpdateEmail 和 updateEmail 之间的区别

angular - 有条件地绕过 Auth0 HttpInterceptor

swift - 我需要帮助从 firebase 的快照中获取值

node.js - 如何在node.js中集成FCM以进行推送通知?

session - CakePHP 保持从主域到子域的 session

Java Web 身份验证和授权