Как создать пользователей приложения Rails из Facebook, используя логин Koala? - PullRequest
3 голосов
/ 30 марта 2011

Я новичок в Rails и пытаюсь создать простое приложение с интеграцией в Facebook.Я работал над учебными пособиями по Rails, и мне это довольно удобно.Я использую Koala Framework для обработки содержимого Facebook.

В настоящее время у меня есть 2 контроллера, один для обработки основного варианта использования приложения и один для обработки учетных записей пользователей.Базовый вариант использования требует, чтобы аутентификация пользователя выполнялась не только для просмотра сайта, и я хотел бы предоставить эту аутентификацию через Facebook.Что я хочу сделать, так это «зарегистрировать» пользователя в моем приложении при первом входе в Facebook.Единственное, что определяет моя модель User, это поле facebook_id.Насколько я могу судить, это может потребовать какого-то обратного вызова из Facebook для моего приложения, чтобы инициировать регистрацию.Я думаю, что мне также нужно иметь возможность определить, когда пользователь вошел в систему, чтобы предоставить им расширенную функциональность;Насколько я понимаю, это может быть реализовано как before_filter, так что у меня пока есть:

# ApplicationController 
def authenticate 
  @facebook_cookies ||= Koala::Facebook::OAuth.new.get_user_info_from_cookie(cookies) 
end

#PacksController - the app's actual functionality 
class PacksController < ApplicationController 
  before_filter :authenticate, :except => [:index, :show] 
  def index 
    .. 
  end 
  def show 
    .. 
  end 
  def new 
    .. 
  end 
  def create 
    .. 
  end 
end 

Я поместил кнопку входа в Facebook в моем application.html.erb после асинхронногоПример на самом Facebook.Я думаю, что это может быть неправильно, но я не совсем уверен;это, кажется, не включает URL обратного вызова, например, если это то, что мне нужно использовать.Я также настроил свой файл facebook.yml согласно https://github.com/arsduo/koala/wiki/Koala-on-Rails, и попытался добавить параметр callback_url (я даже не знаю, является ли это допустимой директивой конфигурации для Koala ...).

Я много читал вики GitHub и Googled, и я чувствую, что застрял.Возможно ли то, что я пытаюсь сделать?Извините, если что-то неясно.

1 Ответ

4 голосов
/ 29 августа 2011

Почему бы вам не использовать гем OmniAuth https://github.com/intridea/omniauth/wiki в дополнение к коале и позволить OmniAuth обрабатывать вашу регистрацию пользователя?

Вот отличный урок о том, как это сделать http://sleekd.com/tutorials/setting-up-omniauth-authentication-with-facebook/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...