Вопрос проверяет понимание механизма аутентификации на основе куки, который широко используется в веб-приложениях для поддержания сессии пользователя.
Cookie-based авторизация — это классический подход к аутентификации в веб-приложениях, где сервер управляет состоянием сессии пользователя. После того как пользователь вводит логин и пароль, сервер проверяет учетные данные, создает уникальный идентификатор сессии (session ID) и отправляет его в ответе в виде HTTP cookie. Браузер сохраняет этот cookie и автоматически включает его во все последующие запросы к серверу, что позволяет серверу восстанавливать контекст пользователя.
Процесс включает несколько шагов:
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 используются флаги:
Также важно устанавливать время жизни сессии и использовать надежный секретный ключ для подписи cookie.
Cookie-based авторизация подходит для традиционных серверных веб-приложений, где требуется простота реализации и управление сессиями на сервере. Она эффективна для монолитных приложений, но может быть менее удобна для микросервисной архитектуры, где чаще используют токены (JWT).
Уровень
Рейтинг:
4
Сложность:
4
Навыки
JavaScript
Node.js
Ключевые слова
Подпишись на React Developer в телеграм
Frontend developer
Ментор по Frontend
Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства
Записаться на консультацию