Методы REST API сервиса авторизации¶
Подробно о работе с REST API можно почитать в этом разделе. Доступ к REST API сервиса авторизации осуществляется по протоколу HTTPS. Методы, закрытые авторизацией, отмечены значком
Способы авторизации¶
В зависимости от используемого метода авторизации указываются разные значения для получения доступа к REST API ноды.
OAuth2 Bearer (apiKey)
- значение access токена.ApiKey or PrivacyApiKey (apiKey)
- значениеapi-key-hash
как для общего доступа к REST API ноды, так и для доступа к методам privacy.
Авторизация по api-key-hash
¶
Генерация значения api-key-hash
выполняется при конфигурации ноды. Также получить значение поля rest-api.api-key-hash
можно при помощи метода /utils/hash/secure REST API ноды. Для подписания запросов ключем из keystore ноды в поле password
запроса POST /transaction/sign
требуется указания пароля доступа к keystore.
Пример запроса:
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'
Авторизация по токену¶
Если используется сервис авторизации, для доступа к ноде и другим сервисам клиент получает пару токенов - refresh и access. Токены можно получить через REST API сервиса авторизации.
Для регистрации пользователя используется метод POST /v1/user. На вход передаются следующие параметры:
login
- логин пользователя (электронный адрес пользователя). В качестве логина используется электронный адрес пользователя.password
- пароль для доступа к аккаунту.locale
- выбор языка, на котором пользователю будет предоставляться информация на почту. Возможные варианты en и ru.source
- тип пользователя. Возможные варианты license и voting.
Только после регистрации пользователь получает токены авторизации.
Для получения и обновления токенов авторизации используются следующие методы:
POST /v1/auth/login - получение токена авторизации с использованием логина и пароля. Этот метод предназначен для авторизации пользователей.
POST /v1/auth/token - получение refresh и access токенов авторизации для сервисов и приложений. Метод не требует параметров и в ответ на вызов присылает значения токенов. Метод может быть использовать только администратором сервиса авторизации.
POST /v1/auth/refresh - обновление refresh токена. На вход передаётся значение токена.
Методы сервиса авторизации¶
GET /status¶
Получение статуса сервиса авторизации.
Ответ метода
{
"status": "string",
"version": "string",
"commit": "string"
}
POST /v1/user¶
Регистрация нового пользователя.
Запрос метода
{
"username": "string",
"password": "string",
"locale": "string",
"source": "string"
}
Если регистрация прошла успешно, в качестве ответа приходит код 201. В ином случае регистрация не состоялась.
GET /v1/user/profile
¶
Получение данных пользователя.
Ответ метода
{
"id": "string",
"name": "string",
"locale": "en",
"addresses": [
"string"
],
"roles": [
"string"
]
}
POST /v1/user/address
¶
Получение адреса пользователя.
Запрос метода
{
"address": "string",
"type": "string"
}
Ответ метода
{
"addressId": "string"
}
GET /v1/user/address/exists¶
Проверка адреса электронной почты пользователя. В качестве параметра на вход метод принимает электронный адрес пользователя.
Ответ метода
{
"exist": true
}
POST /v1/user/password/restore¶
Восстановление пароля доступа к аккаунту пользователя.
Запрос метода
{
"email": "string",
"source": "string"
}
Ответ метода
{
"email": "string"
}
POST /v1/user/password/reset¶
Сброс пароля пользователя.
Запрос метода
{
"token": "string",
"password": "string"
}
Ответ метода
{
"userId": "string"
}
GET /v1/user/confirm/{code}¶
Ввод кода подтверждения для восстановления пароля для доступа к аккаунту пользователя. На вход методу передаётся значение кода подтверждения.
POST /v1/user/resendEmail¶
Повторная отправка кода восстановления пароля на указанный электронный адрес.
Запрос метода
{
"email": "string",
"source": "string"
}
Ответ метода
{
"email": "string"
}
POST /v1/auth/login¶
Регистрация нового пользователя в сервисе авторизации.
Запрос метода
{
"username": "string",
"password": "string",
"locale": "string",
"source": "string"
}
Ответ метода
{
"access_token": "string",
"refresh_token": "string",
"token_type": "string"
}
POST /v1/auth/token
¶
Регистрация внешних сервисов и приложений в сервисе авторизации. Метод не требует параметров запроса.
Ответ метода
{
"access_token": "string",
"refresh_token": "string",
"token_type": "string"
}
POST /v1/auth/refresh¶
Получение нового refresh токена.
Запрос метода
{
"token": "string"
}
Ответ метода
{
"access_token": "string",
"refresh_token": "string",
"token_type": "string"
}
GET /v1/auth/publicKey¶
Получение публичного ключа сервиса авторизации.
Ответ метода
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA7d9Oj/ZQTkkjf4UuMfUu
QIFDTYxYf6QBKMVJnq/wXyPYYkV8HVFYFizCaEciv3CXmBH77sXnuTlrEtvK7zHB
KvV870HmZuazjIgZVSkOnOY7F8UUVNXnlzVD1dPsOGJ6orM41DnC1W65mCrP3bjn
fV4RbmykN/lk7McA6EsMcLEGbKkFhmeq2Nk4hn2CQvoTkupJUnOCP1dhO4bq1lQ7
Ffj9K/FJq73wSXDoH+qqdRG9sfrtgrhtJHerruhv3456e0zyAcDO8+sJUQFKY80B
SZMEndVzFS2ub9Q8e7BfcNxTmQPM4PhHO5wuTqL32qt3uJBx2OI4lu3OND44ZrDJ
BbVog73oPjRYXj+kTbwUZI66SP4aLcQ8sypQyLwqKk5DtLRozSN0OIrupJJ/pwZs
9zPEggL91T0rirbEhGlf5U8/6XN8GVXX4iMk2fD8FHLFJuXCD7Oj4JC2iWfFDC6a
uUkwUfqfjJB8BzIHkncoqOZbpidEE2lTWl+svuEu/wyP5rNlyMiE/e/fZQqM2+o0
cH5Qow6HH35BrloCSZciutUcd1U7YPqESJ5tryy1xn9bsMb+On1ocZTtvec/ow4M
RmnJwm0j1nd+cc19OKLG5/boeA+2zqWu0jCbWR9c0oCmgbhuqZCHaHTBEAKDWcsC
VRz5qD6FPpePpTQDb6ss3bkCAwEAAQ==
-----END PUBLIC KEY-----