Какой рекомендуемый поток OAuth2 для мобильного приложения только с социальным входом?

#android #ios #mobile #backend

#Android #iOS #Мобильный #серверная часть

Вопрос:

Пожалуйста, дайте мне знать, правильно ли я это понимаю. Должен ли я генерировать токен доступа на моем сервере REST (и, возможно, токен обновления?) и отправьте их в клиентское приложение, где я должен хранить эти токены? SharedPreferences? или менеджер учетных записей? Как я мог бы поддерживать сеанс пользователя в рабочем состоянии?

Комментарии:

1. У меня есть мобильный проект с asp.net веб-api, обслуживающий собственные мобильные приложения (Android, IOS, Windows phone), который работает очень хорошо. Если вы хотите получить более подробную информацию, я могу показать вам.

2. @CleverAlmeida да, пожалуйста, я был бы великолепен

3. хорошо … я ухожу сейчас … завтра я отправлю его

4. Вы запрашиваете логин FB / Google?

5. @MohammedElGohary да, особенно в Facebook и ВКонтакте

Ответ №1:

Вот последовательность, которую я использовал в одном из своих предыдущих приложений, не уверен, что она лучшая 🙂

  1. используйте fb sdk / веб-страницу для входа в Facebook или любую другую социальную службу
  2. получите токен и, возможно, токен обновления тоже
  3. возьмите токены и отправьте их на свой собственный сервер
  4. пусть сервер запрашивает FB с помощью этого токена, чтобы получить информацию о вашем профиле (имя, идентификатор FB, адрес электронной почты, пол и т. Д.)
  5. проверьте с помощью FB_id, существует ли этот пользователь в вашей базе данных
  6. если пользователь существует, просто верните клиенту свой собственный токен и обновите токен (не тот, который сгенерирован из FB)
  7. если пользователь не существует, используйте данные, полученные из FB, и создайте новую запись в БД и верните пользователю новый токен и токен обновления.
  8. сохраните токены FB пользователя в своей базе данных для дальнейшего использования.
  9. добавьте значение или ключ в профиль пользователя, чтобы узнать, входил ли пользователь в систему с помощью fb или обычной электронной почты и пароля

.. Любые изменения приветствуются.