Авторизация для Standalone-приложений

Платформа@Mail.Ru позволяет использовать API Mail.Ru из любых приложений на любых платформах. Это могут быть обычные приложения для Windows или мобильные приложения под iOS или Android. Для этих целей мы реализовали поддержку протокола OAuth2.0. Подробнее о деталях реализации OAuth в Mail.Ru и использовании его для доступа к API читайте в руководстве по авторизации.

Обзор процесса авторизации для Standalone-приложений

Откройте страницу авторизации в окне браузера внутри вашего приложения, указав специальную страницу в качестве адреса для обратного редиректа.

Когда пользователь авторизует ваше приложение, браузер будет перенаправлен на заданный вами адрес. Перехватите это событие и получите идентификатор сессии из адресной строки браузера.

Пока ваше приложение находится в статусе «разработка», авторизовываться в нем могут только автор и пользователи, указанные в настройках приложения во вкладке «Доступ». Если вы хотите, чтобы авторизовываться могли все пользователи Mail.Ru, подайте приложение на модерацию в контексте «внешние приложения» через интерфейс управления приложением.

Детальное описание процесса авторизации

Для начала, зарегистрируйте ваше приложение. При регистрации вам будет выдан идентификатор приложения и приватный ключ.

Отметьте в настройках публикации приложения контекст «Внешние приложения». Вы можете не подавать приложение на модерацию в этом контексте на период разработки — у автора и всех, кто указан в разделе «Доступ» настроек приложения, авторизация будет работать сразу. Перед релизом вашего приложения вам надо будет подать приложение на модерацию чтобы авторизация заработала для всех пользователей Mail.Ru.

Откройте в вашем приложении окно браузера со страницей авторизации (смотрите документацию вашей платформы чтобы узнать как открывать браузер внутри приложения). Адрес страницы авторизации:

https://connect.mail.ru/oauth/authorize?
   client_id=идентификатор вашего приложения&
   response_type=token&
   redirect_uri=http%3A%2F%2Fconnect.mail.ru%2Foauth%2Fsuccess.html

Вы также можете добавить к адресу страницы авторизации параметр display=mobile, если по каким-либо причинам вы не можете отображать большую форму авторизации. См. также раздел Authorization Request спецификации OAuth.

Используйте необязательный параметр scope чтобы запросить у пользователя требующиеся вашему приложению привилегии. Если требуется запросить несколько привилегий, они передаются в scope через пробел.

После авторизации браузер будет перенаправлен на адрес следующего вида:

http://connect.mail.ru/oauth/success.html#
   refresh_token=b45529ac9bf6b32be761975c043ef9e3&
   access_token=b6442ed12223a7d0b459916b8ea03ce5&
   token_type=bearer

Перехватите событие редиректа и разберите содержимое якоря (части после символа #): оно представлено в формате application/x-www-form-urlencoded. Значение access_token — это идентификатор сессии, необходимый для работы с REST API. Подробное описание возвращаемых параметров см. в Authorization Response.

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

В случае возникновения ошибок в процессе авторизации, браузер также будет перенаправлен на указанный redirect_uri, с указанием причины ошибки в параметре error. См. подробности в разделе Error Response спецификации OAuth.

Дополнительно