REST APIs

REST API authentication and headers

Чтобы вызвать вызов REST API, вы должны включить заголовки запросов, включая Authorization заголовок с OAuth 2.0. access token

Чтобы получить access token, вы должны создать приложение в Steein. Когда вы создаете приложение, Steein генерирует набор OAuth client_id и secret ключи для вашего приложения. Затем, чтобы получить токен доступа, вы передаете client_id:secret учетные данные в заголовке Authorization в запросе access token. Сервер авторизации выдает токен доступа в обмен на ваш идентификатор клиента и секретные учетные данные. Вы используете токен доступа для аутентификации при выполнении запросов REST API.

Request header Description
Authorization Чтобы запросить токен доступа, отправьте свой client_id и secret значении в качестве базовых учетных данных аутентификации HTTP.
Если вы используете cURL, укажите -u "client_id:secret".
Когда вы вызываете API, отправьте это значение в качестве токена доступа OAuth 2.0 с типом аутентификации, установленным какBearer. Например: Authorization: Bearer Access-Token.
Required.
Accept Установлен в application/json. Required.

OAuth request / response

Используйте запрос OAuth, чтобы получить токен доступа для работы с Steein API.

Requests

Включите client_id:secret как ваши основные учетные данные.

Property Type Description
grant_type string Тип подачи токена. Должно быть установлено значение client_credentials. Required.
content-type string Установлен в application/x-www-form-urlencoded для запросов доступа к токенам. По умолчанию cURL устанавливает это значение, чтобы оно не отображалось в образце запроса. Однако вам может потребоваться явно установить это значение для не-cURL-реализаций.

Пример запроса

curl https://www.steein.ru/oauth/token \
  -H "Accept: application/json" \
  -H "Accept-Language: ru_RU" \
  -u "client_id:secret" \
  -d "grant_type=client_credentials"

Response

Property Type Description
scope string Значение параметра scope выражается в виде списка разделенных пробелами строк, чувствительных к регистру.
Значение, присвоенное Steein.
access_token string access token, выданный Steein. После истечения токена доступа (см. expires_in), вы должны запросить новый токен доступа.
Значение, присвоенное Steein.
token_type string Тип маркера, выданного, как описано в OAuth2.0 RFC6749, Section 7.1. Значение не зависит от регистра.
Значение, присвоенное Steein.
expires_in integer Срок службы токена доступа в секундах.
Значение, присвоенное Steein.

Response sample

{
  "scope": "users posts email",
  "access_token": "",
  "token_type": "Bearer",
  "app_id": "",
  "expires_in": 366000
}

Вы получаете согласие пользователя на то, чтобы вызывать вызовы OAuth API от их имени, перенаправив их на конечную точку авторизации.

Authorization endpoint:

https://www.steein.ru/oauth/authorize

Используйте следующий URL-адрес с переадресацией браузера (HTTP 302), чтобы вызвать поток входа из приложения для входа в систему с помощью Steein:

Property Type Description
client_id string Уникальный идентификатор клиента, полученный в процессе регистрации заявки. Required.
response_type string Допустимым является:
  • code. Просит, чтобы код авторизации был отправлен на URL-адрес возврата приложения. Рекомендуется, поскольку токены доступа не отображаются в пользовательском агенте.
  • token. Возвращает токен. Обычно используется в основном государственными клиентами, такими как JavaScript или мобильные приложения.
scope string URL-кодированный, разделенный пробелами список запрашиваемых URI области видимости. Например (URL-кодирование): "posts+users+email".
redirect_uri string URL возврата приложения, куда отправляется код авторизации. Указанныйredirect_uri должен соответствовать URL-адресу возврата, зарегистрированному для вашего приложения, на Мои приложения сайта разработчика Steein. Все части указанного redirect_uri, включая протокол, хост, порт, путь контекста и имена и значения параметров запроса, должны совпадать, за исключением state параметра. Вы можете использовать параметр state для передачи информации, которая не была известна в момент регистрации URL-адреса возврата для вашего приложения. Вы должны URL-кодировать и Base64-кодировать значение параметра state .
nonce string Непрозрачный случайный идентификатор для смягчения повторных атак. Простая функция: (timestamp + Base64 encoding (random\[16\])).
state string Любой параметр состояния, который может потребоваться для приложения в контексте запроса.

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

Вернуться в приложение

После того, как пользователь дает согласие, Steein перенаправляет (HTTP 302) пользователя на URL-адрес возврата с authorization code, добавленным к URL-адресу. Используйте код авторизации, чтобы получить токен обновления и токен первичного доступа.

https://www.steein.ru/oauth/authorize
  ?client_id=client_id&response_type=code&scope=users+posts+email&redirect_uri=http://example.com/myapp/return.php
http://example.com/myapp/return.php?scope=users+posts+email&code=Authorization-Code