Node.js / NestJS

Авторизація та RBAC

Контроль доступу на основі ролей, кастомні guard, декоратори, дозволи, власність ресурсів

20 питань зі співбесід·
Mid-Level
1

Що таке RBAC (Role-Based Access Control)?

Відповідь

RBAC — це система контролю доступу, яка надає дозволи користувачам на основі їхніх ролей. Замість того, щоб керувати дозволами окремо для кожного користувача, RBAC групує дозволи в ролі (наприклад, ADMIN, USER, MANAGER) і призначає ці ролі користувачам. Це спрощує керування доступом у застосунках і особливо корисне в NestJS з кастомними guard та декораторами метаданих.

2

Яка різниця між автентифікацією та авторизацією?

Відповідь

Автентифікація перевіряє особу користувача (хто ви?), зазвичай через логін/пароль або JWT-токен. Авторизація перевіряє дозволи користувача (що ви можете робити?), контролюючи доступ до ресурсів на основі ролей або дозволів. У NestJS автентифікація часто використовує JwtAuthGuard, тоді як авторизація використовує кастомні guard, як-от RolesGuard, для перевірки прав доступу.

3

Який декоратор NestJS дозволяє створити кастомний guard?

Відповідь

Щоб створити кастомний guard у NestJS, потрібно створити клас, позначений @Injectable(), який реалізує інтерфейс CanActivate. Цей інтерфейс вимагає методу canActivate(context: ExecutionContext), що повертає boolean або Promise. Потім guard можна застосувати до маршрутів за допомогою @UseGuards(). Ця архітектура дозволяє інжектувати залежності (сервіси, репозиторії) у guard для виконання складних перевірок.

4

Що в RBAC означає 'дозвіл' (permission)?

5

Як прикріпити guard до контролера в NestJS?

+17 питань зі співбесід

Інші теми співбесід Node.js / NestJS

Основи Node.js

Junior
20 запитань

Основні API Node.js

Junior
25 запитань

Асинхронне програмування

Junior
25 запитань

Основи Express.js

Junior
20 запитань

Основи NestJS

Junior
23 запитань

Проєктування REST API

Junior
20 запитань

Валідація та DTO

Junior
20 запитань

Документація API та контракти

Junior
20 запитань

Обробка помилок

Junior
20 запитань

Юніт-тестування

Junior
20 запитань

Планування завдань

Junior
15 запитань

Модулі та DI у NestJS

Mid-Level
20 запитань

Конфігурація та керування середовищами

Mid-Level
20 запитань

Автентифікація JWT

Mid-Level
25 запитань

База даних з TypeORM

Mid-Level
30 запитань

Prisma ORM

Mid-Level
25 запитань

Middleware та Interceptors

Mid-Level
20 запитань

Завантаження файлів

Mid-Level
15 запитань

WebSockets

Mid-Level
20 запитань

GraphQL з NestJS

Mid-Level
25 запитань

Наскрізне тестування (End-to-End)

Mid-Level
20 запитань

Кешування з Redis

Mid-Level
20 запитань

Черги з Bull

Mid-Level
20 запитань

DevOps, Logging та CI/CD

Mid-Level
25 запитань

Docker та контейнеризація

Mid-Level
25 запитань

Мікросервіси

Senior
30 запитань

Найкращі практики безпеки

Senior
25 запитань

Продуктивність і хмарне розгортання

Senior
30 запитань

Опануй Node.js / NestJS для наступної співбесіди

Отримай доступ до всіх питань, flashcards, технічних тестів, вправ code review та симуляторів співбесід.

Почни безкоштовно