Нужно ли проверять срок действия JWT на стороне клиента?
Я занимаюсь разработкой веб-сайтов, таких как рубричные объявления, с использованием 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 Unauthorized error with expired access token, просто запрашивайте новый токен доступа с обновленным токеном.
Рабочий процесс, о котором я подумал: 1. отправить серверу запрос с токеном доступа, чтобы получить страницу, которую может видеть только аутентифицированный пользователь 2. если срок действия маркера истек, веб-интерфейс получит HTTP 401 Unauthorized error 3. отправить серверу запрос с токеном обновления для получения новый токен доступа, после чего фронтенд сохранит его в localStorage 4. отправьте запрос еще раз
Это плохой путь?
Мои извинения за мой плохой английский...
1 ответ
Вы не должны проверять JWT на стороне клиента. JWT - это, по сути, токен, который сервер дал вам, который "считается" действительным. Когда вы отправите токен обратно, сервер сообщит вам, если токен недействителен в виде Http Status Code 401 - Unauthorized