Back to questions
Junior — Middle
85
Опишите, каким образом реализована система аутентификации и авторизации в вашем последнем проекте.
Companies where asked
Цифрум
Answer from AI
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();
});
}
Таким образом, безопасность обеспечивается проверкой подлинности и прав доступа на каждом запросе.