Omniauth 404 на обратный звонок - PullRequest
1 голос
/ 09 октября 2011

Я пытаюсь интегрировать omniauth с моим приложением, так как у меня был успех и приятный опыт использования его ранее в приложении Rails 3.

К сожалению, приложение, над которым я работаю, это Rails 2.3.14. Когда я использую omniauth, все идет хорошо, пока обратный вызов не возвращается в мое приложение - в журналах не отображается ошибка, просто появляется случайное сообщение 404. Мои маршруты следующие:

map.connect '/auth/:provider', :controller => 'user_identities', :action => 'blank' 
map.callback "/auth/:provider/callback", :controller => "user_identities", :action => "create"
map.failure "/auth/failure", :controller => "user_identities", :action => "fail"

Пустое действие в первой строке является обходным решением для ошибки, которая говорит о том, что ни один метод не получает 'auth /: provider', который он никогда не загружает, так как он все равно перенаправляет на facebook через Omniauth.

Вот мои логи на ошибку

Обработка UserIdentitiesController # create (для 127.0.0.1 в 2011-10-08 22:36:26) [GET] Параметры: {"code" => "12345", "action" => "create", "controller" => "user_identities", "provider" => "facebook"} Рендеринг /Users/hash/myapp/public/404.html (404)

Добавление отладчика или путов в первую строку создания тоже не помогает

Есть идеи?

Спасибо

Ответы [ 2 ]

1 голос
/ 29 октября 2011

Я только что столкнулся с этой проблемой, получая страницу 404 на запрос / auth / twitter / callback, возвращаемый из твиттера.

Проблема заключалась в том, что в контроллере произошла ошибка приложения.Это привело к 404 (не знаю почему), а не 500.

0 голосов
/ 09 октября 2011

Обратите внимание, что он пытается отобразить #create по запросу GET.Действия создания могут принимать только запросы POST.Не видя больше вашего кода, я не знаю, как исправить этот конкретный случай, но это проблема.Возможно, вам просто нужно добавить :method => :post в вашей форме.

...