【问题标题】:How should electron app handle a OAuth callback电子应用程序应如何处理 OAuth 回调
【发布时间】:2018-07-15 23:43:15
【问题描述】:

我对电子很陌生,我正在构建一个使用 Facebook/Google 来授权用户的应用程序。当我进行开发时,一切正常,当我只使用 localhost:3000 作为 Facebook/Google API 的回调 URL 时。但是当我构建应用程序并运行它时,事情就崩溃了。我按照steps on this medium post here 配置了构建过程。为了简单起见,我只使用了 npm 子模块:react-facebook-loginreact-google-login

我认为这两者之间应该有任何区别,但是该过程在开发上运行良好,但在构建的应用上却不行:

我应该将这种情况视为原生应用程序并从头开始重建授权而不是使用节点模块吗?

【问题讨论】:

  • 你找到解决办法了吗?
  • 您应该在您的身份提供者中另外注册localhost 的回调 URL。我猜你只注册了你的生产应用程序的 URL。
  • github.com/googleapis/… 这对我有用

标签: node.js reactjs oauth electron


【解决方案1】:

OAuth2 的部分工作方式是获取授权码的步骤会调用您从 Facebook 或 Google 或其他任何地方看到的登录对话框。要让您的应用在该对话框完成后重新获得控制权,需要您请求打开对话框以指定一个“redirect_url”,您的应用将通过该“redirect_url”重新获得控制权。

此外,部分安全性是 Facebook 或 Google 或其他任何机构都会检查您针对某些预配置设置指定的 redirect_url。

因此:

  • 您必须配置您计划使用的重定向 URL
  • 您必须确保使用的重定向 URL 与您配置的匹配

其中任何一个失败通常会导致像您所看到的那样的混乱。

【讨论】:

  • 当一个电子应用程序为生产而构建时,前端部分不使用服务器提供服务,而是从文件系统提供服务。 Facebook 和 Google oAuth 不允许人们重定向到基于文件系统的 url,此外,不同系统的文件系统 url 也不同。提供的答案没有强调需要做什么,甚至在恕我直言的方向上也不正确。
猜你喜欢
  • 2018-12-17
  • 2015-06-20
  • 2018-10-13
  • 1970-01-01
  • 2022-12-20
  • 1970-01-01
  • 1970-01-01
  • 2023-02-10
  • 2015-10-25
相关资源
最近更新 更多