Как лучше всего передать токен обновления на сервер, когда пользователь пытается обновить пару токенов JWT? - PullRequest
0 голосов
/ 14 февраля 2019

Есть API для многоплатформенного приложения.Доступ к большей части функциональности требует авторизации.Авторизация основана на токенах JWT.Рабочий процесс выглядит примерно так:

Первый шаг. Клиент отправляет свои учетные данные в теле POST-запроса на /user/authenticate/.Если учетные данные верны, сервер ответит парой JWT-токенов.Они хранятся в теле ответа:

{
    "access": "eyJ0eXAiOiJKV1Q.LCJleHAiOiIxNC4wMi4yMDE5IDE1OjEx.lUPAKbdYwkRt3vMBY",
    "refresh": "eyJ0eXAiOiJKV1Q.iwiZXhwIjoiMTQuMDMuMjAxOSAxNDo0M.iidNaxbMflEadVSS"
}

Дальнейшие шаги. Жетоны, полученные на первом шаге, сохраняются на стороне клиента.Когда клиент отправляет запрос на сервер, access token добавляется к заголовкам запроса.Заголовок выглядит так:

Authorization: Bearer eyJ0eXAiOiJKV1Q.LCJleHAiOiIxNC4wMi4yMDE5IDE1OjEx.lUPAKbdYwkRt3vMBY

Обновление токенов. Все остается прежним, пока не истечет время истечения токена.Когда клиент решает обновить токены, он должен отправить POST-запрос на /user/extend-token/.Для получения свежей пары токенов клиент должен предоставить действительный refresh token.

Вопрос в том, где следует хранить refresh token во время процесса транспортировки к серверу: в теле запроса (так же, как учетные данные с первого шага) или в заголовках (как, например,access token в обычном запросе к API)?

...