Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Задачи

Войти

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

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

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: cookie, session, authentication, http, token

Как работает cookie-based авторизация?

Вопрос проверяет понимание механизма аутентификации на основе куки, который широко используется в веб-приложениях для поддержания сессии пользователя.

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

Cookie-based авторизация — это метод, при котором сервер создает сессию для пользователя после успешного входа и отправляет идентификатор сессии в виде cookie в браузер. Браузер автоматически отправляет этот cookie с каждым последующим запросом, позволяя серверу идентифицировать пользователя. Cookie обычно имеют флаги HttpOnly, Secure и SameSite для защиты от XSS и CSRF атак. Сессионные данные хранятся на сервере, а не в cookie, что делает этот метод безопасным при правильной настройке.

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

Основы cookie-based авторизации

Cookie-based авторизация — это классический подход к аутентификации в веб-приложениях, где сервер управляет состоянием сессии пользователя. После того как пользователь вводит логин и пароль, сервер проверяет учетные данные, создает уникальный идентификатор сессии (session ID) и отправляет его в ответе в виде HTTP cookie. Браузер сохраняет этот cookie и автоматически включает его во все последующие запросы к серверу, что позволяет серверу восстанавливать контекст пользователя.

Как это работает на практике

Процесс включает несколько шагов:

  • Пользователь отправляет POST-запрос с логином и паролем на сервер.
  • Сервер проверяет учетные данные, создает сессию в памяти или базе данных (например, Redis) и генерирует уникальный session ID.
  • Сервер возвращает HTTP-ответ с заголовком Set-Cookie, содержащим session ID.
  • Браузер сохраняет cookie и при каждом запросе к домену добавляет его в заголовок Cookie.
  • Сервер извлекает session ID из cookie, находит соответствующую сессию и обрабатывает запрос в контексте пользователя.

Пример реализации на Node.js с Express

const express = require('express');
const session = require('express-session');
const app = express();

app.use(session({
  secret: 'my-secret-key',
  resave: false,
  saveUninitialized: true,
  cookie: {
    httpOnly: true,
    secure: true,
    sameSite: 'strict'
  }
}));

app.post('/login', (req, res) => {
  const { username, password } = req.body;
  if (username === 'admin' && password === 'pass') {
    req.session.userId = 1;
    req.session.role = 'admin';
    res.send('Logged in');
  } else {
    res.status(401).send('Invalid credentials');
  }
});

app.get('/profile', (req, res) => {
  if (req.session.userId) {
    res.send(`User ${req.session.userId} profile`);
  } else {
    res.status(401).send('Not authenticated');
  }
});

Безопасность и лучшие практики

Для защиты cookie используются флаги:

  • HttpOnly — запрещает доступ к cookie из JavaScript, предотвращая XSS-атаки.
  • Secure — cookie передается только по HTTPS.
  • SameSite — ограничивает отправку cookie в межсайтовых запросах, защищая от CSRF.

Также важно устанавливать время жизни сессии и использовать надежный секретный ключ для подписи cookie.

Вывод

Cookie-based авторизация подходит для традиционных серверных веб-приложений, где требуется простота реализации и управление сессиями на сервере. Она эффективна для монолитных приложений, но может быть менее удобна для микросервисной архитектуры, где чаще используют токены (JWT).

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • Node.js

    Node.js

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

#cookie

#session

#authentication

#http

#token

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

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

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

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