Node.js / NestJS

Phân quyền và RBAC

Kiểm soát truy cập dựa trên vai trò, custom guard, decorator, quyền, quyền sở hữu tài nguyên

20 câu hỏi phỏng vấn·
Mid-Level
1

RBAC (Role-Based Access Control) là gì?

Câu trả lời

RBAC là một hệ thống kiểm soát truy cập cấp quyền cho người dùng dựa trên vai trò của họ. Thay vì quản lý quyền riêng lẻ cho từng người dùng, RBAC nhóm các quyền thành các vai trò (ví dụ: ADMIN, USER, MANAGER) và gán các vai trò này cho người dùng. Điều này đơn giản hóa việc quản lý truy cập trong ứng dụng, đặc biệt hữu ích trong NestJS với custom guard và decorator metadata.

2

Sự khác biệt giữa authentication và authorization là gì?

Câu trả lời

Authentication xác minh danh tính người dùng (bạn là ai?), thường thông qua đăng nhập/mật khẩu hoặc token JWT. Authorization xác minh quyền của người dùng (bạn có thể làm gì?), kiểm soát truy cập vào tài nguyên dựa trên vai trò hoặc quyền. Trong NestJS, authentication thường dùng JwtAuthGuard, trong khi authorization dùng custom guard như RolesGuard để kiểm tra quyền truy cập.

3

Decorator NestJS nào cho phép tạo một custom guard?

Câu trả lời

Để tạo một custom guard trong NestJS, hãy tạo một lớp được trang trí bằng @Injectable() và triển khai interface CanActivate. Interface này yêu cầu phương thức canActivate(context: ExecutionContext) trả về một boolean hoặc Promise. Guard sau đó có thể được áp dụng cho các route bằng @UseGuards(). Kiến trúc này cho phép tiêm các phụ thuộc (service, repository) vào guard để thực hiện các kiểm tra phức tạp.

4

Trong RBAC, một 'permission' (quyền) đại diện cho điều gì?

5

Làm thế nào để gắn một guard vào một controller trong NestJS?

+17 câu hỏi phỏng vấn

Nắm vững Node.js / NestJS cho lần phỏng vấn tiếp theo

Truy cập tất cả câu hỏi, flashcards, bài kiểm tra kỹ thuật, bài tập code review và mô phỏng phỏng vấn.

Bắt đầu miễn phí