Аутентификация Rails с помощью Access_token из Facebook
В настоящее время я создаю приложение для iPhone с бэкэндом. Я использую исключительно на facebook Single Sign On (SSO) на iphone, и аутентификация отлично работает на стороне клиента довольно хорошо. Я использую устройство на рельсах в качестве бэкэнда.
ПРИМЕЧАНИЕ Я консультировался Дизайн для проверки подлинности в Facebook в приложении iOS, который уже имеет доступ к защищенной веб-службе уже
Я вижу, что у разработчика есть что-то, называемое token_authenticable, которое по сути является "билетом", описанным в шаге 5 этого потока. Это текущий поток, который я вижу
- пользователь входит в систему facebook SSO по телефону.
- пользователь делает вызов myserver.com/sessions/fb_sso с помощью {access_token: X}
- На стороне сервера (в SessionController # fb_sso я сделаю вызов API в facebook с помощью access_token
- Если access_token действителен, проверьте, существует ли пользователь в db. Если пользователь не существует, создайте нового пользователя
- Теперь мы можем вернуть {user_id: X, devise_auth_token: Y} обратно на вызов 1)
Это довольно прямолинейно. Однако у меня есть несколько вопросов:
Ответы
Ответ 1
Почему вы не можете использовать жемчужину omniauth-facebook. Его очень простое решение для получения токена доступа, если вы используете его, его потенциал будет удвоен. Убедитесь, что вам нужно получить различный токен доступа в другое время входа.
Вы можете перейти по этой ссылке https://github.com/pramodv-nyros/social-login-in-rails
Ответ 2
Вы должны использовать тот же токен на сервере и клиенте ios. Простое решение ставит всю логику на стороне сервера с помощью устройства + omniauth, iOS обрабатывает только пользовательский интерфейс и отвечает со стороны сервера.
Если вы хотите получить токен от iOS, например, используйте facebook iOS SDK, вы должны указать токен на стороне сервера, но выглядит небезопасным.