Node.js / NestJS

การให้สิทธิ์และ RBAC

การควบคุมการเข้าถึงตามบทบาท, custom guard, decorator, สิทธิ์, ความเป็นเจ้าของทรัพยากร

20 คำถามสัมภาษณ์·
Mid-Level
1

RBAC (Role-Based Access Control) คืออะไร?

คำตอบ

RBAC คือระบบควบคุมการเข้าถึงที่ให้สิทธิ์แก่ผู้ใช้ตามบทบาทของพวกเขา แทนที่จะจัดการสิทธิ์แยกกันสำหรับผู้ใช้แต่ละราย RBAC จะจัดกลุ่มสิทธิ์ไว้ในบทบาท (เช่น ADMIN, USER, MANAGER) และกำหนดบทบาทเหล่านี้ให้กับผู้ใช้ ซึ่งช่วยให้การจัดการการเข้าถึงในแอปพลิเคชันง่ายขึ้น โดยมีประโยชน์อย่างยิ่งใน NestJS เมื่อใช้ร่วมกับ custom guard และ decorator ของ metadata

2

ความแตกต่างระหว่างการยืนยันตัวตน (authentication) และการให้สิทธิ์ (authorization) คืออะไร?

คำตอบ

การยืนยันตัวตนจะตรวจสอบตัวตนของผู้ใช้ (คุณคือใคร?) โดยทั่วไปผ่านการล็อกอิน/รหัสผ่าน หรือ JWT token ส่วนการให้สิทธิ์จะตรวจสอบสิทธิ์ของผู้ใช้ (คุณทำอะไรได้บ้าง?) โดยควบคุมการเข้าถึงทรัพยากรตามบทบาทหรือสิทธิ์ ใน NestJS การยืนยันตัวตนมักใช้ JwtAuthGuard ขณะที่การให้สิทธิ์ใช้ custom guard เช่น RolesGuard เพื่อตรวจสอบสิทธิ์การเข้าถึง

3

decorator ของ NestJS ตัวใดที่ใช้สร้าง custom guard ได้?

คำตอบ

ในการสร้าง custom guard ใน NestJS ให้สร้างคลาสที่ตกแต่งด้วย @Injectable() ซึ่งใช้งาน interface CanActivate interface นี้กำหนดให้มีเมธอด canActivate(context: ExecutionContext) ที่คืนค่าเป็น boolean หรือ Promise จากนั้น guard สามารถนำไปใช้กับ route ได้ด้วย @UseGuards() สถาปัตยกรรมนี้ช่วยให้สามารถ inject dependency (service, repository) เข้าไปใน guard เพื่อทำการตรวจสอบที่ซับซ้อนได้

4

ใน RBAC 'permission' (สิทธิ์) หมายถึงอะไร?

5

จะแนบ guard เข้ากับ controller ใน NestJS ได้อย่างไร?

+17 คำถามสัมภาษณ์

หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ

พื้นฐาน Node.js

Junior
20 คำถาม

Core API ของ Node.js

Junior
25 คำถาม

การเขียนโปรแกรมแบบอะซิงโครนัส

Junior
25 คำถาม

พื้นฐาน Express.js

Junior
20 คำถาม

พื้นฐาน NestJS

Junior
23 คำถาม

การออกแบบ REST API

Junior
20 คำถาม

การตรวจสอบความถูกต้องและ DTO

Junior
20 คำถาม

เอกสาร API และ Contract

Junior
20 คำถาม

การจัดการข้อผิดพลาด

Junior
20 คำถาม

การทดสอบหน่วย (Unit Testing)

Junior
20 คำถาม

การจัดตารางงาน

Junior
15 คำถาม

Module และ DI ของ NestJS

Mid-Level
20 คำถาม

การกำหนดค่าและการจัดการสภาพแวดล้อม

Mid-Level
20 คำถาม

การยืนยันตัวตนด้วย JWT

Mid-Level
25 คำถาม

ฐานข้อมูลด้วย TypeORM

Mid-Level
30 คำถาม

Prisma ORM

Mid-Level
25 คำถาม

Middleware และ Interceptor

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 และ Containerization

Mid-Level
25 คำถาม

ไมโครเซอร์วิส

Senior
30 คำถาม

แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย

Senior
25 คำถาม

ประสิทธิภาพและการ Deploy บน Cloud

Senior
30 คำถาม

เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป

เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์

เริ่มใช้ฟรี