Как устроена платформа
Сервис авторизации: варианты авторизации¶
Сервис авторизации предусматривает два варианта авторизации для доступа к API-методам ноды:
авторизация по хэшу ключевой строки
api-key
;авторизация по
JWT
-токену.
Выбрать вариант авторизации для доступа к API-методам можно в конфигурационном файле ноды в секции auth.
В зависимости от используемого метода авторизации, для доступа к API в запросах или окне авторизации Swagger указываются различные значения:
ApiKey or PrivacyApiKey (apiKey)
– значение хэша ключевой строкиapi-key
;OAuth2 Bearer (apiKey)
– значение access-токена.
Авторизация по хэшу ключевой строки api-key
¶
Хэш заданной вами ключевой строки может быть получен при помощи утилиты ApiKeyHash, входящей в пакет генераторов. Также вы можете сгенерировать хэш ключевой строки самостоятельно, воспользовавшись методом POST /utils/hash/secure.
Пример запроса с авторизацией по хэшу api-key:
curl -X POST
--header 'Content-Type: application/json'
--header 'Accept: application/json'
--header 'X-API-Key: 1' -d '1' 'http://2.testnet-pos.com:6862/transactions/calculateFee'
Авторизация по JWT-токену¶
При использовании авторизации по протоколу oAuth, клиент для доступа к API-методам получает пару токенов - refresh и access. Токены можно получить через методы REST API сервиса авторизации.
Для регистрации пользователя используется метод POST /v1/user. Для запроса передаются следующие параметры:
login
– логин пользователя (адрес электронной почты);password
– пароль для доступа к аккаунту;locale
– выбор языка, на котором пользователю будет предоставляться информация на почту (возможные варианты:en
иru
);source
– тип пользователя:license
– владелец лицензии на использование блокчейн-платформы;voting
– пользователь сервиса голосования Waves Enterprise Voting.
После регистрации пользователь получает возможность запрашивать токены refresh и access.
Для получения и обновления токенов авторизации используются следующие методы:
POST /v1/auth/login – получение токена авторизации с использованием логина и пароля. Этот метод предназначен для авторизации пользователей.
POST /v1/auth/token – получение refresh и access токенов авторизации для сервисов и приложений. Метод не требует параметров и в ответ на вызов присылает значения токенов. Метод может быть использовать только администратором сервиса авторизации.
POST /v1/auth/refresh – обновление refresh токена. На вход передаётся значение токена.
Примечание
Для вызова некоторых методов REST API в JWT-токене пользователя должна быть зашифрована определенная роль авторизации.