Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: authentication, authorization, JWT, session, token

Как определить, что пользователь авторизован в REST API?

Вопрос проверяет понимание механизмов аутентификации и авторизации в REST API, а также умение работать с токенами и сессиями.

Короткий ответ

Для определения авторизации пользователя в REST API обычно используются токены (например, JWT) или сессионные идентификаторы. После успешного входа сервер выдает токен, который клиент отправляет в заголовке Authorization при каждом запросе. Сервер проверяет валидность токена и извлекает данные пользователя. Если токен отсутствует или недействителен, сервер возвращает ошибку 401 Unauthorized.

Длинный ответ

Как работает авторизация в REST API

REST API является stateless (без состояния), поэтому сервер не хранит информацию о сессиях клиентов. Для определения авторизации используется механизм токенов. Наиболее распространенный подход — JWT (JSON Web Token). После успешной аутентификации (например, по логину и паролю) сервер создает токен, содержащий данные пользователя и срок действия. Токен подписывается секретным ключом, чтобы предотвратить подделку.

Процесс проверки авторизации

  • Клиент отправляет запрос с токеном в заголовке Authorization: Bearer <token>.
  • Сервер проверяет подпись токена и его срок действия.
  • Если токен валиден, сервер извлекает данные пользователя (например, ID или роль) и выполняет запрос.
  • Если токен отсутствует, истек или недействителен, сервер возвращает статус 401 Unauthorized.

Пример кода на Node.js с использованием JWT

const jwt = require('jsonwebtoken');

function authenticateToken(req, res, next) {
  const authHeader = req.headers['authorization'];
  const token = authHeader && authHeader.split(' ')[1]; // Bearer TOKEN

  if (!token) return res.sendStatus(401);

  jwt.verify(token, process.env.SECRET_KEY, (err, user) => {
    if (err) return res.sendStatus(403);
    req.user = user;
    next();
  });
}

app.get('/profile', authenticateToken, (req, res) => {
  res.json({ message: 'Доступ разрешен', user: req.user });
});

Вывод

Использование токенов (например, JWT) — стандартный способ определения авторизации в REST API. Это обеспечивает безопасность, масштабируемость и простоту реализации. Подходит для большинства современных веб-приложений и микросервисов.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    5

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

Ключевые слова

#authentication

#authorization

#JWT

#session

#token

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию