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



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

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

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

我到处找,想看看如何解决这个问题,但没有找到。

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

然后,我在自己的应用程序中使用app_key和app_secret_key中的环境变量,因此在开发环境中,我根据开发GitHub应用程序进行验证,在生产环境中,我们根据生产GitHub程序进行验证。

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