Перейти к содержанию
  • Лента
  • Категории
  • Последние
  • Метки
  • Популярные
  • Пользователи
  • Группы
Свернуть
exlends
Категории
  1. Главная
  2. Категории
  3. Языки программирования
  4. JavaScript
  5. Как проверить токен jwt на фронте и передать его в backend

Как проверить токен jwt на фронте и передать его в backend

Запланировано Прикреплена Закрыта Перенесена JavaScript
javascriptapi
2 Сообщения 2 Постеры 48 Просмотры
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • kirilljsxK Не в сети
    kirilljsxK Не в сети
    kirilljsx
    js
    написал отредактировано
    #1

    Этот код реализует проверку наличия JWT-токена в браузере и, при его наличии, выполняет валидацию токена на сервере.

    const tokenCheck = () => {
        const token = localStorage.getItem('jwt');
    
        if(token) {
          auth.checkToken()
          .then((res) => {
            if(res) {
              enableLogin();
              setUserEmail(res.email);
              navigate('/', {replace: true});
            }
          })
          .catch(err => console.warn(err));
        }
      }
    

    Давай разберу пошагово:

    1. Извлекает токен из localStorage:
    const token = localStorage.getItem('jwt');
    

    Пытается получить сохранённый JWT-токен под ключом 'jwt'.

    1. Проверяет, существует ли токен:
    if (token) { ... }
    

    Если токена нет — функция завершает работу.

    1. Отправляет запрос на сервер для проверки токена:
    auth.checkToken()
    

    Предполагается, что auth.checkToken() — это асинхронная функция (например, fetch или axios), которая отправляет токен на бэкенд и проверяет его валидность. Обычно такой эндпоинт возвращает данные пользователя (например, email), если токен действителен.

    1. Обрабатывает успешный ответ:
    .then((res) => {
      if (res) {
        enableLogin();          // Например, активирует UI-состояние "авторизован"
        setUserEmail(res.email); // Сохраняет email пользователя в состояние (например, через React-хук)
        navigate('/', { replace: true }); // Перенаправляет на главную страницу, заменяя текущую запись в истории
      }
    })
    
    • Если сервер вернул валидные данные (res не null/undefined),
    • приложение считает пользователя авторизованным и обновляет UI/состояние,
    • а затем перенаправляет пользователя на корневой маршрут (/), заменяя текущую страницу в истории навигации (используется replace: true → пользователь не сможет вернуться кнопкой «Назад» на страницу входа или загрузки).
    1. Обрабатывает ошибки:
    .catch(err => console.warn(err));
    

    При ошибке (например, токен просрочен, сервер недоступен) - просто выводит предупреждение в консоль, но не прерывает выполнение.

    Функция tokenCheck - это типичный механизм «тихой» автоматической авторизации при запуске приложения: если токен есть и валиден, пользователь сразу считается вошедшим в систему и перенаправляется на главную страницу.

    1 ответ Последний ответ
    0
    • itraceI Не в сети
      itraceI Не в сети
      itrace
      написал отредактировано
      #2

      Я ранее с таким не сталкивался. Благодарю за полезный материал)))

      1 ответ Последний ответ
      0

      Категории

      • Главная
      • Новости
      • Фронтенд
      • Бекенд
      • Языки программирования

      Контакты

      • Сотрудничество
      • info@exlends.com
      • Наш чат
      • Наш ТГ канал

      © 2024 - 2025 ExLends, Inc. Все права защищены.

      Политика конфиденциальности
      • Войти

      • Нет учётной записи? Зарегистрироваться

      • Войдите или зарегистрируйтесь для поиска.
      • Первое сообщение
        Последнее сообщение
      0
      • Лента
      • Категории
      • Последние
      • Метки
      • Популярные
      • Пользователи
      • Группы