我创建了一个使用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错误......
有什么想法吗?
答案 0 :(得分:1)
在您的引擎中编写以下代码
middleware.use OmniAuth::Builder do
provider :provider, 'APP_ID', 'APP_SECRET'
end
您将在/ mount_point / auth /:provider
下拥有登录URL