Понимание того, как работает JWT-аутентификация

Я пытаюсь понять, как работает аутентификация с помощью jwt, и у меня есть несколько основных вопросов.

1) Отправляет ли пользователь как accessToken, так и refreshToken с каждым запросом?

2) Если да, то как он отправляет refreshToken (я знаю, что accessToken находится в заголовке http)

3) Сервер должен сначала проверить accessToken (с подписью), а затем проверить, прошло ли время истечения срока действия. Это правильно?


person Soli    schedule 10.05.2018    source источник


Ответы (1)


Насколько я знаю, токен доступа или обновления не является концепцией в JWT (но это есть в OAuth, который использует аналогичные токены). Скорее, JWT — это просто структура, которая позволяет пользователю представить свои учетные данные органу власти, но без возможности пользователя каким-либо образом изменить этот токен самостоятельно.

Для второй и третьей частей вашего вопроса обычно JWT передается в заголовке. После получения сервер, у которого есть ключ, может расшифровать токен и проверить все требования к этому токену, включая дату истечения срока действия. Но обратите внимание, что простой проверки даты истечения срока действия может быть недостаточно для предоставления доступа пользователю. Например, вы можете приостановить действие учетной записи определенного пользователя, но он все равно будет нести свой JWT. Таким образом, чтобы справиться с этим, вам, возможно, придется также обратиться к своей пользовательской базе данных в дополнение к проверке утверждений на самом JWT.

person Tim Biegeleisen    schedule 10.05.2018