Вопрос маршрута Omniauth, связанный с версией ruby? - PullRequest
0 голосов
/ 29 ноября 2011

Я создал рельсовый движок, который использует omniauth. В этом движке, независимо от запуска на ruby ​​1.8.7 или 1.9.2, когда я тестирую его с помощью фиктивного приложения, все работает так же хорошо (с использованием Rails 3.1.3).

Я могу войти, используя любого из провайдеров, перейдя на /auth/:provider, например /auth/google.

Когда я включаю (как драгоценный камень) этот движок и монтирую его в '/' в хост-приложении, процесс входа в систему работает, когда я использую ruby ​​1.8.7, но дает мне No route matches [GET] "/auth/google, когда я использую ruby ​​1.9. 2.

Итак, чтобы закончить, я получаю No route matches [GET] "/auth/google, когда Omniauth находится внутри движка, и что я использую Ruby 1.9.2.

Я попытался найти решение, в котором вы создадите действие pass thru, которое генерирует ошибку 404, но если я это сделаю, то застряну в этой ошибке 404 ...

Есть идеи?

1 Ответ

1 голос
/ 07 декабря 2011

напишите следующий код в вашем Engine

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

, и у вас будет URL для входа в систему в / mount_point / auth /: provider

...