Обновление токенов
1. Обновление токенов в браузере
-
Перейдите по адресу
https://<app_host>:<app_port>/api/v1/
. -
Перейдите на вкладку «Auth» и выберите эндпоинт
/auth/refresh
(Рисунок 1):

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

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

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