Хорошо, поэтому я отвечаю на свой вопрос.
Если вы используете Facebook SDK , единый вход работает на устройстве достаточно хорошо, НО токен, который вы получаете, не являетсятакой же, как тот, который вы получите в своем приложении 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
Если у кого-то есть лучшее решение, я был бы рад услышать это:)