在 GitHub 中使用 Devise Omniauth 时,如何为 Rails 设置本地开发环境?

How to setup local development environment for Rails when using Devise Omniauth with GitHub?

我正在用 Devise Omniauthable 替换 Devise Database Authenticatable 并使用 GitHub OAuth 策略。我希望 GitHub OAuth 登录选项成为唯一可用的选项。

我在我的本地开发环境中成功地完成了所有这些工作。我面临的问题是在生产站点上启动 OAuth 功能后,继续在我的本地开发环境中开发其他功能。那时我必须将授权回调 URL 设置从当前的 http://localhost:5300/users/auth/github/callback 更改为实际的 url 到已注册的 GitHub 应用程序。

显然,那时我本地计算机上的 GitHub OAuth 将停止工作。

我到处搜索以查看如何解决这个问题,但没有成功。

我过去通过使用 OAuth 服务创建两个应用程序来处理这个问题。一个是重定向回我的生产域的生产应用程序,另一个是重定向回我的开发环境的应用程序。您可以为暂存环境添加第三个应用程序,稍后当您开始使用一个应用程序时。

然后我在我自己的应用程序中使用来自 app_key 和 app_secret_key 的环境变量,因此在开发环境中我针对开发 GitHub 应用程序进行身份验证,在生产环境中我正在针对生产 GitHub 应用程序进行身份验证。

对于指定的端点,这是我发现的唯一有效的解决方案。如果您可以为身份验证请求提供重定向端点,那么您可以使用单个应用程序,但这通常是不安全的,目前还不是常见功能。