Rails Devise Omniauth 1.0 с Facebook

Я следую инструкциям Ryan Bates Railscaast # 235, однако пытаюсь интегрировать Facebook вместо Twitter.

GemFile

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

Контроллер аутентификации

 def create
   render :text => request.env["rack.auth"].to_yaml
  end

Omniauth.rb

Rails.application.config.middleware.use OmniAuth::Builder do
  provider :facebook, 'ID', 'Secret'
end

Маршруты

  devise_for :users

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

Я тестирую это, используя http://localhost:3000, и обозначил это как URL-адрес моего веб-сайта facebook. Когда я вхожу на localhost:3000/auth/facebook, меня успешно запрашивает facebook, однако я перенаправляюсь на: http://localhost:3000/auth/facebook/callback?code= и следующее содержимое страницы:

--- !!нулевой ...

Мой вопрос: где хотя бы адрес электронной почты facebook? Или я как нуб что-то пропустил?


person ponzicoder    schedule 05.11.2011    source источник


Ответы (1)


В вашем контроллере аутентификации измените следующую строку:

render :text => request.env["rack.auth"].to_yaml

to

render :text => request.env["omniauth.auth"].to_yaml

Также взгляните на RailsCast Episode 241 — Simple OmniAuth, который Райан Бейтс обновил для работы с ним. Омниаутентификация 1.0

person Stuart B    schedule 06.12.2011