Electron:Firebase 和 Facebook 身份验证?

Anc*_*nek 5 javascript firebase electron firebase-authentication

我正在尝试为应用程序内的用户提供额外的身份验证。电子邮件/密码身份验证已经实现,我还想添加 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,
    },
  ],
});
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

Dou*_*son 2

对于桌面应用程序,不支持以这种方式进行 Web 版 Firebase 身份验证。Web SDK 适用于浏览器客户端,用户可以重定向到执行第三方身份验证的网页。对于非浏览器的桌面 javascript (Electron) 应用程序来说,这并不容易。您可以自行尝试以某种方式获取身份验证令牌,但客户端 SDK 无法帮助您实现这一点。