Access токен
Информация, представленная на этой странице, актуальна для боевого контура системы. Авторизация в тестовом контуре происходит с некоторыми отличиями. Подробности об авторизации в тестовом контуре доступны на странице Авторизация в тестовом контуре.
Access токен — токен доступа с коротким сроком действия, создаваемый пользователем API с помощью ранее созданного Refresh токена.
Роль этого токена — авторизация запросов в адрес сервера API, выполняемых пользователем от своего имени.
По передаваемому серверам API токену система определяет, есть ли у пользователя права на выполнение запрошенной операции с указанным значениями.
Access токен предоставляет доступ к системе, равносильный использованию комбин ации логина и пароля торгового аккаунта. Обеспечьте его конфиденциальность.
Создание токена
Для создания Access токена необходимо отправить POST-запрос к конечной точке /refresh
сервера авторизации с указанием действующего Refresh токена в качестве значения Query-параметра token
.
Пример запроса:
https://oauth.alor.ru/refresh?token=12be28e4-2e15-44b8-983e-e6c119a1bcac
Где 12be28e4-2e15-44b8-983e-e6c119a1bcac
— действующий Refresh токен.
В ответ сервер авторизации вернёт 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
Список разрешений, запрашиваемых приложением при обращении к системе
Пример: 2871763199
Время (UTC) истечения срока действия токена в формате Unix Time Seconds, после которого токен становится недействительным
Пример: 0
Время (UTC) создания токена в формате Unix Time Seconds
Пример: Alor.Identity
Идентификатор сервера, создавшего и подписавшего токен
Пример: CommandApi
Список сегментов системы, к которым токен предоставляет доступ
Таким образом, обнародование токена даже с истёкшим сроком действия может привести к утечке чувствительной информации. Убедитесь в конфиденциальности создаваемых и используемых токенов, и не допускайте их передачи в открытом виде или публикации в открытый доступ.
Особенности и ограничения
При создании и использовании Access токенов учитывайте следующие особенности и ограничения:
- Срок действия токена ограничен и равен 30 минутам с момента создания. Предусмотрите в клиенте API механизм обновления Access токена
- Для создания токена используется запрос к HTTP API. Других способов создания токена, включая обращение к WebSocket API, не предусмотрено
- Количество Access токенов, создаваемых из одного Refresh токен а, не ограничено
- В роли Access токена выступает JWT токен — зашифрованный JSON-объект, содержащий данные о портфелях и правах доступа к торговой системе. Не рекомендуется публиковать Access токены в открытый доступ, даже если срок их действия истёк
- Нельзя вручную отозвать отдельно выбранный Access токен. Для досрочного прекращения действия токена потребуется отозвать использовавшийся при создании Refresh токен, что приведёт к прекращению действия всех выписанных с его помощью токенов доступа
Что дальше?
- Ознакомьтесь с интерактивным описанием запроса на получение Access токена
- Если нужно протестировать запросы к API без влияния на позиции портфелей настоящего аккаунта, ознакомьтесь с особенностями авторизации в тестовом контуре
- Изучите возможности запросов к HTTP API и WebSocket API
Кроме того, могут оказаться полезными руководства по быстрому старту для Боевого и Тестового контуров.