
Autoryzacja i RBAC
Kontrola dostępu oparta na rolach, niestandardowe guardy, dekoratory, uprawnienia, własność zasobów
1Czym jest RBAC (Role-Based Access Control)?
Czym jest RBAC (Role-Based Access Control)?
Odpowiedź
RBAC to system kontroli dostępu, który przyznaje uprawnienia użytkownikom na podstawie ich ról. Zamiast zarządzać uprawnieniami indywidualnie dla każdego użytkownika, RBAC grupuje uprawnienia w role (np. ADMIN, USER, MANAGER) i przypisuje te role użytkownikom. Upraszcza to zarządzanie dostępem w aplikacjach i jest szczególnie przydatne w NestJS z niestandardowymi guardami i dekoratorami metadanych.
2Jaka jest różnica między uwierzytelnianiem a autoryzacją?
Jaka jest różnica między uwierzytelnianiem a autoryzacją?
Odpowiedź
Uwierzytelnianie weryfikuje tożsamość użytkownika (kim jesteś?), zwykle za pomocą loginu/hasła lub tokenu JWT. Autoryzacja weryfikuje uprawnienia użytkownika (co możesz robić?), kontrolując dostęp do zasobów na podstawie ról lub uprawnień. W NestJS uwierzytelnianie często używa JwtAuthGuard, podczas gdy autoryzacja używa niestandardowych guardów, takich jak RolesGuard, do sprawdzania praw dostępu.
3Który dekorator NestJS pozwala utworzyć niestandardowy guard?
Który dekorator NestJS pozwala utworzyć niestandardowy guard?
Odpowiedź
Aby utworzyć niestandardowy guard w NestJS, należy stworzyć klasę udekorowaną @Injectable(), która implementuje interfejs CanActivate. Ten interfejs wymaga metody canActivate(context: ExecutionContext), która zwraca boolean lub Promise. Guard można następnie zastosować do tras za pomocą @UseGuards(). Ta architektura pozwala wstrzykiwać zależności (serwisy, repozytoria) do guarda w celu wykonywania złożonych walidacji.
Co w RBAC reprezentuje 'uprawnienie' (permission)?
Jak przypisać guard do kontrolera w NestJS?
+17 pytań z rozmów
Inne tematy rekrutacyjne Node.js / NestJS
Podstawy Node.js
Podstawowe API Node.js
Programowanie asynchroniczne
Podstawy Express.js
Podstawy NestJS
Projektowanie API REST
Walidacja i DTO
Dokumentacja API i kontrakty
Obsługa błędów
Testy jednostkowe
Harmonogramowanie zadań
Moduły i DI w NestJS
Konfiguracja i zarządzanie środowiskami
Uwierzytelnianie JWT
Baza danych z TypeORM
Prisma ORM
Middleware i Interceptory
Przesyłanie plików
WebSockets
GraphQL z NestJS
Testy end-to-end
Buforowanie z Redis
Kolejki z Bull
DevOps, Logging i CI/CD
Docker i konteneryzacja
Microservices
Najlepsze praktyki bezpieczeństwa
Wydajność i wdrażanie w chmurze
Opanuj Node.js / NestJS na następną rozmowę
Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.
Zacznij za darmo