Дата: 26.06.2017

Использование OAuth 2.0


OAuth 2.0 - это открытый стандарт авторизации, который позволяет пользователям предоставить доступ к своим приватным данным без необходимости ввода логина и пароля.

Для начала Вам необходимо зарегестрировать свое приложение .Зарегестрированному приложению выдаётся сгенерированный уникальный номер клиента client_id и секретный ключ клиента client_secret , которые будут использоваться в потоке OAuth. Секретный ключ не должен расспространяться.

Поток OAuth

Портал использует поток грантов кода авторизации OAuth 2.0 для видачи токенов доступа от имени пользователя.

 api_oauth_flow

 

ШАГ 1 - АВТОРИЗАЦИЯ

Ваше вэб или мобильное приложение должно перенапрявлять пользователей на следующий URL-адрес:

http://ucci-service.org/oauth/authorize

Следующие значения должны быть переданы, как праметры GET запроса:

  • client_id - видаётся при регистрации вашего приложения (обязательно)
  • scope - области применения (обязательно)
  • redirect_uri - ссылка для перенаправления (обязательно)
  • response_type - задает тип ответа
  • state - параметр, который используется для предотвращения подделки, передает значение, уникальное для пользователя, который авторизируется, и проверяет его, при завершении авторизации

ШАГ 2 - ПОЛУЧЕНИЕ КЛЮЧ ДОСТУПА

Если потльзователь санкционирует ваше приложение, мы перенаправим его на указаный вами redirect_uri с временным кодом в параметре code GET запроса, а также параметром state, если вы указывали его на предижущм шаге. Если параметры state не совпадают, запрос может быть создан третьей стороной, и вы должны прервать этот процесс.

Если все хорошо, обменяйте свой код авторизации на ключ доступа доступа, используя API метод oauth.access.

http://ucci-sevice.org/oauth/access

  • client_id - видается при регистрации вашего приложения (обязательно)
  • client_secret - видается при регистрации вашего приложения (обязательно)
  • code - код авторизации (обязательно)
  • redirect_uri - должен соответсвовать предявленному раньше URI (если был указан)

 

В ответ вы получите JSON, который содержит  access_token (серди других сведений):

{
   "ok": true,
   "access_token": "xoxp-...-...",
   "expires": 36000,
   "account_id": 123
}

 

Вы можете виспользовать этот ключ доступа для вызова методов API от имени пользователя. Ключ доступа будет функционировать, пока пользователь не удалит вашу программу и/или не закончится срок действия ключа.