【问题标题】:How to setup local development environment for Rails when using Devise Omniauth with GitHub?使用 Devise Omniauth 和 GitHub 时如何为 Rails 设置本地开发环境?
【发布时间】:2015-04-11 05:51:00
【问题描述】:

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

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 太棒了!谢谢迈克尔。这是一个出色而简单的解决方案。我从来没有想过要这样。
    猜你喜欢
    • 1970-01-01
    • 2016-02-03
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    相关资源
    最近更新 更多