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

时间:2015-02-11 00:32:55

标签: ruby-on-rails ruby-on-rails-4 github oauth devise

我正在使用Devise Omniauthable替换Devise Database Authenticatable并使用Gi​​tHub OAuth策略。我希望GitHub OAuth登录选项是只有一个可用。

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

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

我到处搜索,看看如何解决这个问题,但没有运气。

1 个答案:

答案 0 :(得分:0)

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

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

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