
การให้สิทธิ์และ RBAC
การควบคุมการเข้าถึงตามบทบาท, custom guard, decorator, สิทธิ์, ความเป็นเจ้าของทรัพยากร
1RBAC (Role-Based Access Control) คืออะไร?
RBAC (Role-Based Access Control) คืออะไร?
คำตอบ
RBAC คือระบบควบคุมการเข้าถึงที่ให้สิทธิ์แก่ผู้ใช้ตามบทบาทของพวกเขา แทนที่จะจัดการสิทธิ์แยกกันสำหรับผู้ใช้แต่ละราย RBAC จะจัดกลุ่มสิทธิ์ไว้ในบทบาท (เช่น ADMIN, USER, MANAGER) และกำหนดบทบาทเหล่านี้ให้กับผู้ใช้ ซึ่งช่วยให้การจัดการการเข้าถึงในแอปพลิเคชันง่ายขึ้น โดยมีประโยชน์อย่างยิ่งใน NestJS เมื่อใช้ร่วมกับ custom guard และ decorator ของ metadata
2ความแตกต่างระหว่างการยืนยันตัวตน (authentication) และการให้สิทธิ์ (authorization) คืออะไร?
ความแตกต่างระหว่างการยืนยันตัวตน (authentication) และการให้สิทธิ์ (authorization) คืออะไร?
คำตอบ
การยืนยันตัวตนจะตรวจสอบตัวตนของผู้ใช้ (คุณคือใคร?) โดยทั่วไปผ่านการล็อกอิน/รหัสผ่าน หรือ JWT token ส่วนการให้สิทธิ์จะตรวจสอบสิทธิ์ของผู้ใช้ (คุณทำอะไรได้บ้าง?) โดยควบคุมการเข้าถึงทรัพยากรตามบทบาทหรือสิทธิ์ ใน NestJS การยืนยันตัวตนมักใช้ JwtAuthGuard ขณะที่การให้สิทธิ์ใช้ custom guard เช่น RolesGuard เพื่อตรวจสอบสิทธิ์การเข้าถึง
3decorator ของ NestJS ตัวใดที่ใช้สร้าง custom guard ได้?
decorator ของ NestJS ตัวใดที่ใช้สร้าง custom guard ได้?
คำตอบ
ในการสร้าง custom guard ใน NestJS ให้สร้างคลาสที่ตกแต่งด้วย @Injectable() ซึ่งใช้งาน interface CanActivate interface นี้กำหนดให้มีเมธอด canActivate(context: ExecutionContext) ที่คืนค่าเป็น boolean หรือ Promise จากนั้น guard สามารถนำไปใช้กับ route ได้ด้วย @UseGuards() สถาปัตยกรรมนี้ช่วยให้สามารถ inject dependency (service, repository) เข้าไปใน guard เพื่อทำการตรวจสอบที่ซับซ้อนได้
ใน RBAC 'permission' (สิทธิ์) หมายถึงอะไร?
จะแนบ guard เข้ากับ controller ใน NestJS ได้อย่างไร?
+17 คำถามสัมภาษณ์
หัวข้อสัมภาษณ์ Node.js / NestJS อื่นๆ
พื้นฐาน Node.js
Core API ของ Node.js
การเขียนโปรแกรมแบบอะซิงโครนัส
พื้นฐาน Express.js
พื้นฐาน NestJS
การออกแบบ REST API
การตรวจสอบความถูกต้องและ DTO
เอกสาร API และ Contract
การจัดการข้อผิดพลาด
การทดสอบหน่วย (Unit Testing)
การจัดตารางงาน
Module และ DI ของ NestJS
การกำหนดค่าและการจัดการสภาพแวดล้อม
การยืนยันตัวตนด้วย JWT
ฐานข้อมูลด้วย TypeORM
Prisma ORM
Middleware และ Interceptor
การอัปโหลดไฟล์
WebSockets
GraphQL กับ NestJS
การทดสอบแบบ End-to-End
การแคชด้วย Redis
คิวด้วย Bull
DevOps, Logging และ CI/CD
Docker และ Containerization
ไมโครเซอร์วิส
แนวทางปฏิบัติที่ดีที่สุดด้านความปลอดภัย
ประสิทธิภาพและการ Deploy บน Cloud
เชี่ยวชาญ Node.js / NestJS สำหรับการสัมภาษณ์ครั้งถัดไป
เข้าถึงคำถามทั้งหมด flashcards แบบทดสอบเทคนิค แบบฝึกหัด code review และตัวจำลองสัมภาษณ์
เริ่มใช้ฟรี