Маршрут не совпадает с «/ oauth / авторизовать»

#ruby-on-rails #ruby-on-rails-3 #routes #authlogic #omniauth

#ruby-on-rails #ruby-on-rails-3 #маршруты #authlogic #omniauth

Вопрос:

Я начал интегрировать Omniauth 1.0 в свое приложение Rails / Authlogic, и при попытке доступа я получаю ошибку маршрута localhost:3000/auth/facebook .

Должны ли мы создавать пользовательский маршрут для каждого /auth/strategy , который мы хотим, или здесь что-то еще не так?

 # gemfile
gem 'omniauth-facebook'

# routes
resources :authentications
match '/auth/:provider/callback' => 'authentications#create'

# config/initializers/omniauth.rb
Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, '20...', 'bc...'
end

# accessing /auth/facebook
No route matches "/oauth/authorize"
  

Ответ №1:

Обновил мой GemFile с

 gem "omniauth-facebook", :git => "git://github.com/mkdynamic/omniauth-facebook.git"
  

и это сработало.

Комментарии:

1. Бен — я получаю invalid_uri от Facebook за попытку подключиться localhost . Вы знаете, о чем это?

2. @sscirrus Вероятно, это настройка Facebook. Facebook требует, чтобы был установлен URI перенаправления (хотя теперь они разрешают несколько). Вы можете изменить его, обновив свое приложение по адресу developers.facebook.com .

3. Это временное исправление, поскольку новый gem FB omniauth официально еще не выпущен. Вероятно, исправлено, как только это RC.