Обновление токенов

1. Обновление токенов в браузере

  1. Перейдите по адресу https://<app_host>:<app_port>/api/v1/.

  2. Перейдите на вкладку «Auth» и выберите эндпоинт /auth/refresh (Рисунок 1):

image$1000000000000591000002886D68D2A0
Рисунок 1. Эндпоинт /auth/refresh
  1. Нажмите кнопку «Try it out». Если авторизация была пройдена в этом же браузере и access_token и refresh_token все ещё находятся в cookie, то нажмите кнопку «Execute». В ином случае явно укажите токены c префиксом Bearer для параметров Authorization-Access-Token и Authorization (Рисунок 2).

image$10000000000003C2000001D4A7FD83722C6A0BCC
Рисунок 2. Заполнение полей авторизации

В результате проделанных операций Вам вернётся перевыпущенный access_token, перевыпущенные refresh_token и csrf_token, а также сопутствующая информация о пользователе прошедшем авторизацию (Рисунок 3). Также сервис автоматически разместит перевыпущенные access_token и refresh_token в cookie-файлах.

image$10000000000004610000022E574FDFD0
Рисунок 3. Ответ с перевыпущенными токенами

2. Обновление токенов в терминале

Чтобы произвести перевыпуск пары токенов через терминал, необходимо отправить POST-запрос с помощью консольной утилиты curl или любым другим удобным способом. В данном примере используется curl:

curl -k -X POST 'https://api.rubackup.local:5656/api/v1/auth/refresh' \ (1) (2) (3)
  -H 'accept: application/json' \ (4)
  -H 'Authorization-Access-Token: Bearer <access_token>' \ (4) (5)
  -H 'Authorization: Bearer <refresh_token>' (4) (6)
1 https://api.rubackup.local — адрес, где запущен rubackup_api
2 5656 - порт, который будет использоваться как часть адреса сервера API
3 /api/v1/auth/refresh — путь до запроса на обновление токена
4 -H <argument> - значения, передаваемые в заголовках
5 Authorization-Access-Token — значение полученного при авторизации access_token с префиксом Bearer
6 Authorization — значение полученного при авторизации refresh_token с префиксом Bearer

Результат вернётся в формате JSON:

{
  "data": {
    "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNTE2MjAwOSwianRpIjoiODhlZDcwYzUtM2Y4Yi00MDVmLWJlMjMtYzcwNTA3YzA5MmViIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InJ1YmFja3VwIiwibmJmIjoxNzE1MTYyMDA5LCJjc3JmIjoiNGM4YzM0NTctNDAwNS00YzZiLTk2MWMtMGM1MDU5NjcxZTA2IiwiZXhwIjoxNzE1MTYyOTA5LCJmYW1pbHkiOiJleXh1Y250cWVja29ma2p0In0.XHppz9B-eYoEcxZAwcf-nbXKnu8rC_kXIMRWIU4gZXc",
    "csrf_token": "4c8c3457-4005-4c6b-961c-0c5059671e06",
    "package_version": "<version>",
    "refresh_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNTE2MjAwOSwianRpIjoiOGNlYmY4NGMtOTM4MS00YTlhLWE1OGItNmU4ZDM3OTgxMTI0IiwidHlwZSI6InJlZnJlc2giLCJzdWIiOiJydWJhY2t1cCIsIm5iZiI6MTcxNTE2MjAwOSwiY3NyZiI6IjRjOGMzNDU3LTQwMDUtNGM2Yi05NjFjLTBjNTA1OTY3MWUwNiIsImV4cCI6MTcxNTI0ODM3MCwiZmFtaWx5IjoiZXl4dWNudHFlY2tvZmtqdCJ9.H_TPOn-CF70bYUKa5AP4Ul0MsiPEnzy5foxTZXHi0dE",
    "role": [
      "superuser"
    ],
    "rubackup_server_address": "10.177.xx.xxx",
    "user_name": "rubackup"
  },
  "errors": {},
  "is_error": false,
  "message": ""
}

Если необходимо получить еще и access_token и refresh_token из cookies, то в команде curl следует передать опцию --cookie-jar -, например:

curl -k --cookie-jar - -X POST 'https://api.rubackup.local:5656/api/v1/auth/refresh' \
  -H 'accept: application/json' \
  -H 'Authorization-Access-Token: Bearer <access_token>' \
  -H 'Authorization: Bearer <refresh_token>'

С этой опцией к выводу добавится следующая информация:

#HttpOnly.rubackup.local FALSE / TRUE 0 refresh_token_cookie
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNTE2MjAwOSwianRpIjoiOGNlYmY4NGMtOTM4MS00YTlhLWE1OGItNmU4ZDM3OTgxMTI0IiwidHlwZSI6InJlZnJlc2giLCJzdWIiOiJydWJhY2t1cCIsIm5iZiI6MTcxNTE2MjAwOSwiY3NyZiI6IjRjOGMzNDU3LTQwMDUtNGM2Yi05NjFjLTBjNTA1OTY3MWUwNiIsImV4cCI6MTcxNTI0ODM3MCwiZmFtaWx5IjoiZXl4dWNudHFlY2tvZmtqdCJ9.H_TPOn-CF70bYUKa5AP4Ul0MsiPEnzy5foxTZXHi0dE

#HttpOnly.rubackup.local FALSE / TRUE 0 access_token_cookie
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJmcmVzaCI6ZmFsc2UsImlhdCI6MTcxNTE2MjAwOSwianRpIjoiODhlZDcwYzUtM2Y4Yi00MDVmLWJlMjMtYzcwNTA3YzA5MmViIiwidHlwZSI6ImFjY2VzcyIsInN1YiI6InJ1YmFja3VwIiwibmJmIjoxNzE1MTYyMDA5LCJjc3JmIjoiNGM4YzM0NTctNDAwNS00YzZiLTk2MWMtMGM1MDU5NjcxZTA2IiwiZXhwIjoxNzE1MTYyOTA5LCJmYW1pbHkiOiJleXh1Y250cWVja29ma2p0In0.XHppz9B-eYoEcxZAwcf-nbXKnu8rC_kXIMRWIU4gZXc