Javascript 如何在电子桌面应用程序中使用Google登录?

Javascript 如何在电子桌面应用程序中使用Google登录?,javascript,node.js,express,electron,google-signin,Javascript,Node.js,Express,Electron,Google Signin,我正在使用Node.js和Express制作一个简单的应用程序。它在很大程度上依赖谷歌登录来获取个人资料图片和昵称,在一个新的电子应用程序中测试时,我被抛出了错误- “此浏览器或应用可能不安全 请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,则可以刷新屏幕,然后重试登录。“ -当尝试登录谷歌时。在意识到这不会将详细信息传递回应用程序之前,我曾短暂考虑过在用户浏览器中打开登录。我在网上找到的很多解决方案都依赖于Firebase,而我并没有使用Firebase 有没有办法将数据从浏览器发送回应

我正在使用Node.js和Express制作一个简单的应用程序。它在很大程度上依赖谷歌登录来获取个人资料图片和昵称,在一个新的电子应用程序中测试时,我被抛出了错误-

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

请尝试使用其他浏览器。如果您已经在使用受支持的浏览器,则可以刷新屏幕,然后重试登录。“

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


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

您不需要firebase来完成这项工作。您可以将用户带到其常规浏览器,然后再返回。可以将详细信息传回应用程序。我们是在家里做这件事的

这是一个稍微涉及(但对任何其他供应商也有用)。我假设您以前使用过某种OAuth提供程序

  • 在您的
    Electron
    应用程序中注册自定义url处理程序(例如
    myapp://
    。您可以使用
    协议
    完成此操作)。我们使用了图书馆

  • 在应用程序的网站上,设置可以启动应用程序的侧页。例如,我们有一个页面可以启动我们的应用程序。您希望将此网站注册为来自Google的
    重定向url
    ,因此当Google点击此url时,它会将验证令牌传递给它。你可以在这里做任何工作

  • 最后,在您的网站上,调用应用程序的url处理程序<代码>myapp://authroize?code=XYZ。这会将所有数据发送回主应用程序

  • 如果需要UI中的最终数据,可以使用
    ipcRenderer.send()

  • 当然可以。您可以使用firebase身份验证模块进行验证。这真的很简单,你们也可以添加其他方式登录到应用程序。
    deeplink.on('received', (link) => {
        // parse out the code from the stuff here
    });