Как работает oauth2 для мобильных приложений?

В общем,виде oauth2 работает примерно так :
1.U заходит на клиенсткий сайт. Клиент делает редирект на Auth сервер вместе со своим client_id и redirect url
2.Auth сервер проверяет права U и делает редирект на redirect url добавляя код авторизации
3.Клиент делает POST запрос к Auth серверу вместе со своим client_id и кодом авторизации
4.Сервер отвечает кодом доступа.
В этом виде все более-менее понятно.
Но что делать,если U является мобильным клиентом для нашего сайта?
  • Вопрос задан
  • 3354 просмотра
Решения вопроса 1
nazarpc
@nazarpc
Open Source enthusiast
У меня на нескольких проектах сам сайт предоставляет приложению OAuth2:
1) Приложение открывает в браузере страницу /OAuth2/authorize?response_type=token&client_id=client_id&redirect_uri=redirect_uri&state=state
То есть у каждого приложения свой client_id, а в redirect_uri указывается website://website.com
2) На сайте пользователь каким-то образом входит (логин+пароль, опять таки OAuth2 через Facebook, vk.com, и т.д.)
3) Сайт после входа (либо сразу если пользователь уже авторизирован) редиректит обратно на redirect_uri#access_token=access_token&expires_in=expires_in&user_id=user_id&token_type=bearer&state=state
4) Приложение ловит переход на website://website.com (website:// это кастомный протокол, приложение может зарегистрироваться в ОС на его обработку) и парсит то, что приходит после #

Вот такая схема успешно работает, но нужно побеспокоиться об мобильной версии страницы входа в таком случае.
Вообще-то то всё по стандарту, можете почитать RFC, там весьма детально и достаточно четко описано всё это.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы