Нужно ли проверять срок действия JWT на стороне клиента? - PullRequest
0 голосов
/ 09 февраля 2019

Я занимаюсь разработкой веб-сайтов, таких как рубричные объявления, с использованием Django REST framework, реаги и редукции.У меня есть вопрос об аутентификации с помощью JWT.Я хочу использовать djangorestframework_simplejwt для аутентификации, и я проверил несколько уроков.Я видел, что многие учебники проверяют токен доступа на стороне клиента, как показано ниже

export function isAccessTokenExpired(state) {
 if (state.access && state.access.exp) {
   return 1000 * state.access.exp - (new Date()).getTime() < 5000
 }
 return true
}

, а также обновляют токен.Но я не знаю почему.Потому что просто запрашивайте новый токен доступа с токеном обновления каждый раз, когда мы получаем HTTP 401 Несанкционированная ошибка с токеном доступа с истекшим сроком действия.

Рабочий процесс, который я думал: 1. Отправить серверу запрос с токеном доступа, чтобы получить страницу, на которой только аутентифицированный пользовательможно увидеть 2. если токен доступа истек, веб-интерфейс получит HTTP 401 Несанкционированная ошибка 3. отправить серверу запрос с токеном обновления, чтобы получить новый токен доступа, тогда веб-интерфейс сохранит его в localStorage 4. отправить запрос еще раз

Это плохой путь?

Мои извинения за мой плохой английский ...

1 Ответ

0 голосов
/ 09 февраля 2019

Вы не должны проверять JWT на стороне клиента.JWT - это, по сути, токен, который сервер дал вам, который «считается» действительным.Когда вы отправляете токен обратно, сервер сообщит вам, если токен не действителен в виде Http Status Code 401 - Unauthorized

...