Вопрос на собеседовании · Fullstack-разработчик
Чем аутентификация отличается от авторизации и как их реализовать?
Короткий ответ, ключевые тезисы и ошибки, которых стоит избежать на интервью.
Аутентификация отвечает на вопрос «кто пользователь», авторизация — «может ли он выполнить это действие над этим объектом». UI может скрыть кнопку, но сервер обязан проверять право для каждого запроса с учётом пользователя, роли, tenant и владельца ресурса.
Сессия или токен выбираются по архитектуре, но в обоих случаях нужны короткий срок жизни, безопасное хранение, отзыв/ротация и защита от типичных веб-угроз. HttpOnly secure cookie снижает риск кражи через XSS, но требует CSRF-защиты; bearer token нельзя публиковать в логах и URL.
01 · Структура ответа
Что важно сказать интервьюеру
Начните с определения, затем объясните механизм и закончите примером из практики. Для полного ответа раскройте эти тезисы:
02 · Пример
Как объяснить на практике
GET /projects/42 сначала идентифицирует пользователя, затем проверяет, что он состоит в tenant проекта и имеет требуемое действие. Попытка подставить ID чужого проекта получает 404 или 403 по политике, независимо от того, что frontend не показывает ссылку.
Не заучивайте формулировку дословно. Свяжите принцип с задачей из собственного проекта — интервьюер почти наверняка попросит уточнить детали реализации и компромиссы.
03 · Ошибки
Чего избегать в ответе
04 · Углубление
Что могут спросить следом
- JWT или session cookie?
- Как реализовать logout?
- Что такое IDOR?
Практика ответа
Ответьте вслух, а не про себя
Откроем тренировку сразу на этом вопросе. Выберите грейд, сформулируйте ответ и сравните его с подсказкой.
Mira