Omniauth路由问题与ruby版本有关吗?

时间:2011-11-29 00:19:02

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 omniauth

我创建了一个使用omniauth的rails引擎。在该引擎中,无论是在ruby 1.8.7还是1.9.2上运行,当我使用虚拟应用程序进行测试时,一切工作都一样好(使用Rails 3.1.3)。

我可以转到/auth/:provider,例如/auth/google,使用任何提供商登录。

当我包含(作为gem)该引擎并将其安装到主机应用程序中的'/'时,登录过程在我使用ruby 1.8.7时有效,但在我使用No route matches [GET] "/auth/google时使用ruby 1.9.2。

所以,为了把它包起来,当Omniauth在引擎中并且我使用Ruby 1.9.2时,我得到No route matches [GET] "/auth/google

我尝试了设计解决方案,你在其中创建了一个生成404错误的pass thru动作,但如果我这样做,那么我就会陷入404错误......

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在您的引擎中编写以下代码

middleware.use OmniAuth::Builder do
  provider :provider, 'APP_ID', 'APP_SECRET' 
end

您将在/ mount_point / auth /:provider

下拥有登录URL