Я пытаюсь использовать стратегию OmniAuth (0.2.6) для моего приложения. Архитектура - Rails 2.3.10, а Rack - версия 1.1 (эта версия или выше требуется для OmniAuth). Проблема, которая возникает, заключается в том, что Rails не распознает мое перенаправление на «/ auth / provider». Фактическое сообщение об ошибке: «Не найдено ни одного маршрута» / auth / casport ». Несмотря на то, что эта ошибка генерируется, кажется, что код выполняется после этой точки вплоть до этой ошибки:« request.env ['omniauth.auth'] », который Я почти уверен, что он не распознает ключ "omniauth.auth" для хэша env. У меня такое ощущение, что OmniAuth не загружается должным образом. Я тестировал ту же стратегию и кодовую базу с Mongrel и Webrick и я получаю идентичные сообщения об ошибках.
Вот мой инициализатор OmniAuth (config / initializers / omniauth.rb):
ActionController::Dispatcher.middleware.use OmniAuth::Builder do
provider :casport, :setup => true
end
У меня определенно есть маршруты в местах для auth / casport / setup и auth / casport / callback.
Я также попробовал этот подход: Как реализовать OmniAuth на Rails 2.2?
config.middleware.use OmniAuth::Builder do
provider :casport, :setup => true
end
, поместив этот код промежуточного программного обеспечения в файл config / environment / development.rb.
Есть ли у кого-нибудь мысли о том, что я могу делать неправильно? Спасибо!
Редактировать: Я также пробовал этот подход Кто-нибудь использовал omniauth с рельсами 2.3.8?
ActionController::Dispatcher.middleware.use OmniAuth::Strategies::Casport = {
:setup => true
}
и это возвращает ошибку чтения: "NoMethodError: неопределенный метод 'new' для #Hash ...
Редактировать 2: Я обновился до Rails 2.3.10, поскольку OmniAuth не совместим с Rails 2.3.4.