Дата: 26.06.2017
Использование OAuth 2.0
OAuth 2.0 - это открытый стандарт авторизации, который позволяет пользователям предоставить доступ к своим приватным данным без необходимости ввода логина и пароля.
Для начала Вам необходимо зарегестрировать свое приложение .Зарегестрированному приложению выдаётся сгенерированный уникальный номер клиента client_id
и секретный ключ клиента client_secret
, которые будут использоваться в потоке OAuth. Секретный ключ не должен расспространяться.
Поток OAuth
Портал использует поток грантов кода авторизации OAuth 2.0 для видачи токенов доступа от имени пользователя.
ШАГ 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 от имени пользователя. Ключ доступа будет функционировать, пока пользователь не удалит вашу программу и/или не закончится срок действия ключа.