【问题标题】:Electron: Firebase and Facebook authentication?Electron:Firebase 和 Facebook 身份验证?
【发布时间】:2019-05-22 05:41:13
【问题描述】:

我正在尝试为应用内的用户提供额外的身份验证。已经实现了电子邮件/密码身份验证,我还想添加 Facebook/Google 身份验证。

我试过firebaseui:

const ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start(selector, {
  callbacks: {
    signInSuccessWithAuthResult(authResult) {
      that.handleAuthentication(authResult);
      return false;
    },
  },
  credentialHelper: firebaseui.auth.CredentialHelper.NONE,
  signInFlow: 'redirect',
  signInOptions: [
    {
      provider: firebase.auth.EmailAuthProvider.PROVIDER_ID,
    },
    {
      provider: firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    },
    {
      provider: firebase.auth.FacebookAuthProvider.PROVIDER_ID,
    },
  ],
});

虽然 UI 在传递的 selector 中正确呈现,但我无法打开 Google/Facebook 身份验证,因为它会显示此消息:

运行此应用程序的环境不支持此操作。 “location.protocol”必须是 http、https 或 chrome-extension,并且必须启用网络存储。

这是正确的,因为location.protocol 等于file:

我的问题是 - 我怎样才能在 Electron 应用程序中使用 Facebook/Google 身份验证?

【问题讨论】:

  • Electron 应用程序中的浏览器窗口是否能用于此目的?
  • @AbhijitSrivastava 不幸的是没有,但我所做的只是创建了一个用于身份验证的简单网站,并使用 websockets 将应用程序与其连接。
  • 好的,谢谢,我希望有一天谷歌能把它包括进来。

标签: javascript firebase firebase-authentication electron


【解决方案1】:

桌面应用程序不支持这种方式的 Firebase 网络身份验证。 Web SDK 旨在为浏览器客户端工作,用户可以被重定向到执行第三方身份验证的网页。这对于不是浏览器的桌面 javascript (Electron) 应用程序来说并不容易。您可以自行尝试以某种方式获取身份验证令牌,但客户端 SDK 无法为您提供帮助。

【讨论】:

  • 我可以为此目的从 Electron 应用程序中以某种方式打开浏览器窗口吗?
  • 我不知道,我以前从未参与过选举。
  • 我刚遇到这个,应该可以帮到你。 medium.com/firebase-developers/…
猜你喜欢
  • 2018-02-24
  • 2015-08-10
  • 2011-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-11-03
  • 2017-01-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多