Подтвердить что ты не робот

Разработать приложение Omniauth и Iphone/Android

Я настроил auth для своих приложений на rails с помощью Devise и Omniauth. Теперь мне интересно, где я должен начать использовать тот же auth для приложения Android и iPhone, которое я хочу создать.

Должен ли я использовать мобильную версию my/auth/facebook или я должен напрямую отправлять запрос из приложения?

Это довольно общий вопрос, но я нигде не смотрю.

EDIT: я только что добавил Token Auth в приложение для использования с RESTful api, я просто пропустил часть Omniauth/Facebook-token.

4b9b3361

Ответ 1

Хорошо, поэтому я отвечаю на свой вопрос.

Если вы используете Facebook SDK, SSO работает неплохо на устройстве, НО, токен, который вы получаете, не совпадает с тот, который вы получите в своем приложении Rails. Видимо, Facebook создает разные токены в зависимости от поддержки.

Итак, я сделал это: как только я получу токен на устройстве Android, я отправляю его в свое приложение rails через URL:

http://myapp/check_mobile_login?token=FB_MOBILE_TOKEN

Затем это поймает мой контроллер приложений, который использует токен с жемчугом fb_graph для извлечения пользовательских данных. Если токен действителен, я собираюсь получить некоторые фрагменты информации. Затем я проверяю с моей базой данных, и, если я нахожу тот же UID, тогда мой пользователь аутентифицируется, и я отправляю его обратно Authentificable_token из Devise.

И код проекта:

    def check_mobile_login
        token = params[:token]

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

        logged = User.find_by_uid(user.identifier)

        respond_to do |format|
            format.html # index.html.erb
            format.json { render :json => logged.authentication_token }
        end
    end

Если у кого-то есть лучшее решение, я был бы рад услышать это:)