Sobes.tech
Назад к вопросам
Junior — Middle
86

Опишите, каким образом реализована система аутентификации и авторизации в вашем последнем проекте.

Компании, где спрашивали
Цифрум

Ответ от нейросети

sobes.tech AI

В моём последнем проекте аутентификация реализована через JWT (JSON Web Tokens). Пользователь вводит логин и пароль, сервер проверяет их и, если данные верны, генерирует токен с определённым сроком действия. Этот токен клиент сохраняет и отправляет с каждым запросом в заголовке Authorization.

Авторизация происходит на основе ролей, которые закодированы в токене. Сервер проверяет роль пользователя и разрешает или запрещает доступ к определённым ресурсам.

Пример проверки токена на Node.js с использованием express и jsonwebtoken:

const jwt = require('jsonwebtoken');

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

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

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

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