Omniauth не может найти маршрут - PullRequest
2 голосов
/ 28 октября 2011

Я пытаюсь реализовать Omniauth с моим приложением Rails 3. Я следовал руководству из Railscast эпизода 205 , но не смог заставить его работать. Когда я вызываю '/ auth / twitter' (он не работает ни с одним провайдером), Rails жалуется, что не может найти подходящий маршрут (он пытается загрузить мой маршрут по умолчанию).

Я добавил omniauth.rb в config/initializers/, поместил gem 'omniauth' в мой Gemfile и запустил установку пакета.

Я не уверен, как отладить эту проблему и какую информацию предоставить, чтобы помочь понять проблему.

Ответы [ 3 ]

1 голос
/ 05 июня 2013

Вот мои шаги, чтобы заставить его работать:

1) Добавьте omniauth в свой Gemfile

2) Добавить всенаправленную стратегию в свой Gemfile (например, omniauth-linkedin)

3) Выполнить bundle install

4) Добавьте инициализатор omniauth в config/initializers/omniauth.rb

5) Добавьте соответствующий маршрут auth/:provider/callback => users#omniauth к routes.rb (укажите на контроллер / действие, где вы будете обрабатывать ответ аутентификации)

6) Создайте действие для обработки ответа аутентификации в контроллере, на который вы ссылались в шаге # 4

7) Перезагрузите веб-сервер

Маршрут по умолчанию /auth/:provider не был распознан для меня, пока я не перезапустил Apache.

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

После некоторых исследований я нашел решение.Я добавил следующее в мой файл rout.rb:

get 'auth /: provider' => 'authentications # passthru'

и в мой контроллер аутентификации:

  def passthru
    render :file => "#{Rails.root}/public/404.html", :status => 404, :layout => false
  end

Не знаю, почему я должен был это сделать, но это работает ...

0 голосов
/ 07 марта 2012

Вы должны добавить 'omniauth-twitter' в свой gemfile и

:strategy_class => OmniAuth::Strategies::Twitter

на ваш omniauth.rb, в конце провайдера Twitter.

Затем он распознает путь / auth / twitter.

...