Методы REST API сервиса авторизации

Подробно о работе с REST API можно почитать в этом разделе. Доступ к REST API сервиса авторизации осуществляется по протоколу HTTPS. Методы, закрытые авторизацией, отмечены значком lock.

Способы авторизации

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

../_images/authTypes.png
  • 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.

Только после регистрации пользователь получает токены авторизации.

Для получения и обновления токенов авторизации используются следующие методы:

  1. POST ​/v1​/auth​/login - получение токена авторизации с использованием логина и пароля. Этот метод предназначен для авторизации пользователей.

  2. POST ​/v1​/auth​/token - получение refresh и access токенов авторизации для сервисов и приложений. Метод не требует параметров и в ответ на вызов присылает значения токенов. Метод может быть использовать только администратором сервиса авторизации.

  3. 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 lock

Получение данных пользователя.

Ответ метода

{
 "id": "string",
 "name": "string",
 "locale": "en",
 "addresses": [
 "string"
 ],
 "roles": [
 "string"
 ]
 }

POST ​/v1​/user​/address lock

Получение адреса пользователя.

Запрос метода

{
  "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 lock

Регистрация внешних сервисов и приложений в сервисе авторизации. Метод не требует параметров запроса.

Ответ метода

{
  "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-----