Node.js / NestJS

Autoryzacja i RBAC

Kontrola dostępu oparta na rolach, niestandardowe guardy, dekoratory, uprawnienia, własność zasobów

20 pytań z rozmów·
Mid-Level
1

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.

2

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.

3

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.

4

Co w RBAC reprezentuje 'uprawnienie' (permission)?

5

Jak przypisać guard do kontrolera w NestJS?

+17 pytań z rozmów

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