Access токен
Информация, представленная на этой странице, актуальна для боевого контура системы. Авторизация в тестовом контуре происходит с некоторыми отличиями. Подробности об авторизации в тестовом контуре доступны на странице Авторизация в тестовом контуре.
Access токен — токен доступа с коротким сроком действия, создаваемый пользователем API с помощью ранее созданного Refresh токена.
Роль этого токена — авторизация запросов в адрес сервера API, выполняемых пользователем от своего имени.
По передаваемому серверам API токену система определяет, есть ли у пользователя права на выполнение запрошенной операции с указанным значениями.
Access токен предоставляет доступ к системе, равносильный использованию комбинации логина и пароля торгового аккаунта. Обеспечьте его конфиденциальность.
Создание токена
Для создания Access токена используется POST-запрос к конечной точке /refresh
сервера авторизации. Запрос должен содержать действующий Refresh токен в качестве значения параметра token
. При этом передать этот параметр можно как в пути запроса (как Query
), так и в его теле (как Body
).
Используйте что-то одно. При одновременном заполнении Query
и Body
приоритет отдаётся последнему.
Дополнительно можно ограничить список портфелей, доступ к которым обеспечивается с помощью создаваемого токена. Для этого передайте массив со списком портфелей в качестве значения параметра allowedPortfolios
.
- В пути
- В теле
https://oauth.alor.ru/refresh?token=12b...cac&allowedPortfolios=["Portfolio1", "Portfolio2", "Portfolio3"]
https://oauth.alor.ru/refresh
{
"token": "12b...cac",
"allowedPortfolios": [
"Portfolio1",
"Portfolio2",
"Portfolio3"
]
}
Где:
12b...cac
— действующий Refresh токен;Portfolio1
,Portfolio2
иPortfolio3
— портфели, доступ к которым должен предоставлять создаваемый Access токен.
В ответ сервер авторизации вернёт JSON-объект, содержащий Access токен:
{
"AccessToken": "eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA"
}
Полученный токен будет действителен в течение 30 минут с момента создания, если использовавшийся при создании Refresh токен не будет отозван раньше.
Для запроса на обновление Access токена доступно интерактивное описание на странице Обновление JWT токена.
Отзыв токена
Возможность отзыва отдельно выбранного Access токена до истечения срока его действия не предусмотрена. Единственным способом досрочного прекращения действия Access токена является отзыв использовавшегося при его создании Refresh токена.
Чтение токена
В качестве Access токена в АЛОР Брокер API используется JWT Token — зашифрованный JSON-объект, содержащий в себе информацию как о самом токене (дата создания, срок действия, параметры заголовка), так и о пользователе API, по чьему запросу он был выписан — торговый логин, списки прав доступа и портфелей, список доступных для вызова ресурсов. В связи с этим рекомендуется сохранять конфиденциальность Access токенов даже после завершения их срока действия.
Без знания секретного ключа полностью дешифровать и/или подменить токен невозможно. Тем не менее, при частичном дешифровании можно прочесть полезную нагрузку, передаваемую серверу API при выполнении запроса.
Пример токена и его содержимого:
- Токен
- Полезная нагрузка
- Схема
eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCIsImN0eSI6IkpXVCJ9.eyJzdWIiOiJMb2dpblNhbXBsZSIsImVudCI6ImNsaWVudCIsImVpbiI6IjAxMjM0IiwiY2xpZW50aWQiOiIwMTIzNDU2IiwiYXpwIjoiMDEyMzQ1Njc4OWFiY2RlZjAxMjMiLCJhZ3JlZW1lbnRzIjoiQWdyZWVtZW50U2FtcGxlMSBBZ3JlZW1lbnRTYW1wbGUyIEFncmVlbWVudFNhbXBsZTMiLCJwb3J0Zm9saW9zIjoiUG9ydGZvbGlvU2FtcGxlMSBQb3J0Zm9saW9TYW1wbGUyIFBvcnRmb2xpb1NhbXBsZTMiLCJzY29wZSI6Ik9yZGVyc1JlYWQgT3JkZXJzQ3JlYXRlIFRyYWRlcyBQZXJzb25hbCBTdGF0cyIsImV4cCI6Mjg3MTc2MzE5OSwiaWF0IjowLCJpc3MiOiJBbG9yLklkZW50aXR5IiwiYXVkIjoiQ2xpZW50IFdBUlAgV2FycEFUQ29ubmVjdG9yIHN1YnNjcmlwdGlvbnNBcGkgQ29tbWFuZEFwaSBJbnN0cnVtZW50QXBpIFRyYWRpbmdWaWV3UGxhdGZvcm0ifQ.QOQVMIAoZ6SnF5urnIzJ0EvtQd9P5Sx355069kXoID207wHOTW0wkKNMcrIKXmENEQQ_0yDjqH_kjeqWLBJuqA
{
"sub": "LoginSample",
"ent": "client",
"ein": "01234",
"clientid": "0123456",
"azp": "0123456789abcdef0123",
"agreements": "AgreementSample1 AgreementSample2 AgreementSample3",
"portfolios": "PortfolioSample1 PortfolioSample2 PortfolioSample3",
"scope": "OrdersRead OrdersCreate Trades Personal Stats",
"exp": 2871763199,
"iat": 0,
"iss": "Alor.Identity",
"aud": "Client WARP WarpATConnector subscriptionsApi CommandApi InstrumentApi TradingViewPlatform"
}
Параметры тела ответа
Идентификатор пользователя. В качестве идентификатора используется логин торгового аккаунта
Пример: P39004
Тип сущности пользователя
Пример: client
?
Пример: 01234
Идентификационный номер пользователя
Пример: 01234
Идентификатор приложения, запрашивающего доступ к ресурсам системы
Пример: 0123456789abcdef0123
Список договоров, связанных с пользователем
Пример: AgreementSample1
Список портфелей, связанных с пользователем
Пример: PortfolioSample1
Список разрешений, запрашиваемых приложением при обращении к системе
Пример: OrdersRead
Время (UTC) истечения срока действия токена в формате Unix Time Seconds, после которого токен становится недействительным
Пример: 2871763199
Время (UTC) создания токена в формате Unix Time Seconds
Пример: 0
Идентификатор сервера, создавшего и подписавшего токен
Пример: Alor.Identity
Список сегментов системы, к которым токен предоставляет доступ
Пример: CommandApi
Таким образом, обнародование токена даже с истёкшим сроком действия может привести к утечке чувствительной информации. Убедитесь в конфиденциальности создаваемых и используемых токенов, и не допускайте их передачи в открытом виде или публикации в открытый доступ.
Особенности и ограничения
При создании и использовании Access токенов учитывайте следующие особенности и ограничения:
- Срок действия токена ограничен и равен 30 минутам с момента создания. Предусмотрите в клиенте API механизм обновления Access токена
- Для создания токена используется запрос к HTTP API. Других способов создания токена, включая обращение к WebSocket API, не предусмотрено
- Количество Access токенов, создаваемых из одного Refresh токена, не ограничено
- В роли Access токена выступает JWT токен — зашифрованный JSON-объект, содержащий данные о портфелях и правах доступа к торговой системе. Не рекомендуется публиковать Access токены в открытый доступ, даже если срок их действия истёк
- Нельзя вручную отозвать отдельно выбранный Access токен. Для досрочного прекращения действия токена потребуется отозвать использовавшийся при создании Refresh токен, что приведёт к прекращению действия всех выписанных с его помощью токенов доступа
Что дальше?
Дополнительно рекомендуем ознакомиться со следующими статьями по теме:
- Интерактивное описание запроса на получение JWT токена
- Особенности авторизации в тестовом контуре
- HTTP API
- WebSocket API
- Быстрый старт в Боевом контуре
- Быстрый старт в Тестовом контуре