Github oauth 多个授权回调 URL



我想在我的本地主机和我的实时域中工作,有什么方法可以在 github oauth 设置中插入多个回调?我们如何解决这个问题?

重定向网址

我通过在 Github 上为我的本地开发环境创建一个专用的 OAuth 应用程序来解决这个问题。所以我有以下 2 个 OAuth 应用程序:

  1. 我的正式OAuth生产应用程序

    • 客户端 ID:ABC
    • 客户端密码:123
    • 授权回调网址:https://example.com/api/v1/security/oauth/github/callback
  2. 我的专用 OAuth 开发应用程序

    • 客户端 ID:XYZ
    • 客户端密码:456
    • 授权回调网址:https://localhost/api/v1/security/oauth/github/callback

在本地配置 API 时,我使用开发应用程序的 ID 和密钥 (2)。在生产中,我使用我的官方应用程序的 ID 和秘密 (1)。

坏消息是我们不能在 GitHub OAuth 设置中插入多个回调。

好消息是我们可以在回调 url 下使用多个回调子 url,然后您可以将其重定向(代理)到您想要的任何回调 URL。

例如,如果您的回调 URL 为:domain.com/auth/github/callback,则以下回调 URL 均有效:

  1. domain.com/auth/github/callback/sub-callback-1
  2. domain.com/auth/github/callback/sub-callback-2
  3. domain.com/auth/github/callback/sub-callback-3

等。

在重定向到包含所有参数的子回调 N 后,我们可以按预期跳转到任何其他回调 URL。

您可以修改主机文件并将域指向使用 127.0.0.1,而不是使用 localhost。在 Mac 上,打开位于以下位置的主机文件:

Computer > Macintosh HD > etc

为您的域添加条目。例如,如果您的域已 mycoolapp.com

127.0.0.1 mycoolapp.com

只需确保在要使用生产服务器进行测试时注释掉此行:

#127.0.0.1 mycoolapp.com

使用此解决方案,您无需维护两个单独的配置。

根据他们的文档,您不需要注册本地主机重定向 URL,但只要其主机部分是 localhost,它就只接受 URL,即使它与注册的 URL 不匹配。

最新更新