如何在 Electron 桌面应用程序中使用 Google 登录?

2024-04-23

我正在使用 Node.js 和 Express 制作一个简单的应用程序。它严重依赖 Google 登录来获取个人资料图片和昵称,当在新的 Electron 应用程序中测试它时,我遇到了错误 -

“此浏览器或应用程序可能不安全

尝试使用不同的浏览器。如果您已经在使用受支持的浏览器,您可以刷新屏幕并再次尝试登录。”

- 尝试使用 Google 登录时。我曾短暂考虑过在用户浏览器内打开登录,然后意识到这不会将详细信息传递回应用程序。我在网上找到的很多解决方案都依赖于 Firebase,但我没有使用它。

有没有办法可以将数据从浏览器发送回应用程序?或者我还没有考虑过的其他解决方案?


你不需要 firebase 来做到这一点。您可以通过将用户带到他们的常规浏览器并再次返回来完成此操作。可以将详细信息传递回应用程序。我们这样做是在Amna https://getamna.com.

它有点复杂(但对任何其他提供商也很有用)。我假设您之前使用过某种 OAuth 提供程序。

  1. 在您的中注册自定义 url 处理程序Electron应用程序(例如myapp://。您可以使用protocol)。我们使用了电子深度链接 https://www.npmjs.com/package/electron-deeplink library

  2. 在您的应用程序的网站上,设置一个可以启动您的应用程序的侧页。例如,我们有一个授权 https://www.getamna.com/authorize启动我们的应用程序的页面。您想将此网站注册为redirect url来自 Google,因此当 Google 点击此 url 时,它会将验证令牌传递给它。您可以在这里进行任何 OAuth 工作。

  3. 最后,从您的网站调用应用程序的 url 处理程序。myapp://authroize?code=XYZ。这会将所有数据发送回您的主应用程序。

deeplink.on('received', (link) => {
    // parse out the code from the stuff here
});
  1. 如果您需要 UI 中的最终数据,您可以使用以下命令将数据传递到 UIipcRenderer.send()
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Electron 桌面应用程序中使用 Google 登录? 的相关文章

随机推荐