Аутентификация с помощью Facebook через Rails API

Пользователи моего приложения Rails могут аутентифицироваться в одном из этих двух способов:

  • Использование своей учетной записи Facebook
  • Использование нашей собственной аутентификации

Я использую Facebook SDK на Android и devise и omniauth на Rails.

Как мне выполнить аутентификацию против моего приложения Rails на Android, чтобы затем получить информацию, необходимую мне с сервера?

NB : Я заметил, что этот вопрос недавно получил довольно много просмотров. Пожалуйста, не следуйте советам, приведенным в этой теме, слишком близко – сеть быстро перемещается, и она датируется 3 года назад!

    Это можно сделать с помощью fb_graph gem (а не fbgraph!).

    Вы можете просто добавить его в свой gemfile и сделать

     user = FbGraph::User.me(token).fetch 

    Где token – это маркер oauth, который вы получили, например, с помощью SDK для Android на Android. user.email будет адресом электронной почты пользователя (если вы установите необходимые разрешения).

    Вы можете использовать этот URL для тестирования:

     https://www.facebook.com/dialog/oauth?client_id=YOUR_APP_ID&redirect_uri=https://www.facebook.com/connect/login_success.html&response_type=token 

    Это полностью зависит от того, как работает ваша система аутентификации. Вам нужно будет создать API на своем сервере для обработки связи из приложения Android и передавать информацию между обоими, используя API.

    Нирадж Шах совершенно прав, хотя ответ может быть недостаточно подробным для вас. Чтобы получить подробный ответ на ваш вопрос, ознакомьтесь с разделом Rising Bates , который был выпущен только недавно. Он охватывает HTTP Basic Auth.

    Вы также можете взглянуть на более продвинутый вариант, чтобы защитить ваш API / предоставить зарегистрированным пользователям доступ к их данным. Здесь есть railscast об этом: http://railscasts.com/episodes/353-oauth-with-doorkeeper – хотя это про эпизод, поэтому вам нужно зарегистрироваться для его просмотра.

    Франциско, у меня есть такая же потребность.

    Сценарий разработки с использованием token_authenticatable кажется простым и не должен быть проблемой, но я не уверен, что лучший способ справиться с сценарием Facebook. На веб- странице для FB auth я использую omniauth-facebook, как описано здесь: https://github.com/plataformatec/devise/wiki/OmniAuth:-Overview . Я думаю, что это использует OAuth с FB как провайдера, поэтому неплохо, что последний RailsCast о привратнике, защищающем API от OAuth, должен сделать трюк. Я еще не пробовал, но сделаю это скоро, если вы не побьете меня. Вот ссылка: http://railscasts.com/episodes/353-oauth-with-doorkeeper .