สร้างระบบล็อกอิน NestJS ด้วย brkpt-auth ใน 15 นาที
เรียนรู้วิธีสร้างระบบ Password และ Google OAuth MVP บน NestJS v11 และ Prisma 7.10.0 ด้วย brkpt-auth ภายใน 15 นาที

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
- ใช้ brkpt-auth สร้างระบบล็อกอินบน NestJS v11
- รองรับทั้งการยืนยันตัวตนด้วยรหัสผ่านและ Google OAuth
- เชื่อมต่อฐานข้อมูล PostgreSQL ผ่าน Prisma 7.10.0
- ไม่ต้องเขียนโค้ดเชื่อมต่อระบบเองทั้งหมด
บทความแนะนำการสร้างระบบยืนยันตัวตนแบบ MVP สำหรับโปรเจกต์ NestJS โดยใช้เครื่องมือ brkpt-auth ซึ่งถูกออกแบบมาเพื่อแก้ปัญหาโค้ดเชื่อมต่อ (glue code) ที่มักสะสมเพิ่มขึ้นเรื่อยๆ เมื่อโปรเจกต์เติบโตขึ้น โดยตัวไลบรารีจะติดตั้งซอร์สโค้ดลงในโปรเจกต์โดยตรง และจัดโครงสร้างผ่านพอร์ต (ports) และแอดแดปเตอร์ (adapters) ทำให้แยกตรรกะฐานข้อมูลและโทเคนออกจากระบบยืนยันตัวตนได้อย่างเด็ดขาด
คู่มือฉบับนี้เขียนขึ้นโดยอ้างอิงจาก NestJS v11 (โปรเจกต์ CommonJS จากคำสั่ง nest new) และ Prisma 7.10.0 พร้อมทั้งใช้งานไลบรารี class-validator สำหรับการตรวจสอบข้อมูลขาเข้า เนื่องจากสามารถทำงานร่วมกับเดคอเรเตอร์ @Body() ได้ทันทีโดยไม่ต้องตั้งค่าไปป์เพิ่มเติมเหมือนกับการใช้ Zod
ขั้นตอนเริ่มต้นทำได้โดยการสร้างโปรเจกต์ใหม่ด้วยคำสั่ง nest new my-app จากนั้นติดตั้ง CLI ของ brkpt พร้อมแพ็กเกจที่จำเป็น เช่น @nestjs/config, @nestjs/event-emitter และ cookie-parser ก่อนจะรันคำสั่ง brkpt auth init เพื่อติดตั้งฟีเจอร์หลักและตรวจสอบรายการ dependencies ที่ยังขาดหายไป

ภาพประกอบจากคลังภาพสต็อก ไม่ใช่ภาพจากเหตุการณ์จริง
ในส่วนของการจัดการฐานข้อมูล โปรเจกต์นี้ใช้งาน PostgreSQL โดยต้องกำหนดค่าเชื่อมต่อ DATABASE_URL ลงในไฟล์ .env และติดตั้ง Prisma เวอร์ชัน 7.10.0 ร่วมกับ @prisma/adapter-pg และ pg ก่อนรันคำสั่ง npx prisma@7.10.0 init เพื่อสร้างโครงสร้างตารางผู้ใช้
การใช้งานสถาปัตยกรรมแบบ Hexagonal ในลักษณะนี้ช่วยให้แอปพลิเคชันมีความยืดหยุ่นสูง เพราะการเปลี่ยนแปลงในชั้นฐานข้อมูลหรือผู้ให้บริการภายนอกอย่าง Google จะไม่ส่งผลกระทบโดยตรงต่อโค้ดส่วนอื่น ทำให้การบำรุงรักษาระบบในระยะยาวทำได้ง่ายขึ้นมากเมื่อเทียบกับการเขียนโค้ดจัดการระบบสมาชิกขึ้นเองตั้งแต่ต้น
เมื่อติดตั้งระบบหลักเรียบร้อยแล้ว สามารถเพิ่มระบบยืนยันตัวตนด้วยรหัสผ่านได้ผ่านคำสั่ง brkpt auth add credentials พร้อมติดตั้ง class-validator, class-transformer และ bcrypt สำหรับการเข้ารหัสรหัสผ่าน ซึ่งระบบจะจัดเตรียม DTO เปล่าไว้ให้ผู้พัฒนาสามารถกำหนดฟิลด์สำหรับแบบฟอร์มสมัครสมาชิกได้เองตามความต้องการ
ที่มา: Dev.to
พบข้อมูลผิดพลาดในบทความนี้? แจ้งปัญหาบทความนี้
ความคิดเห็น
แสดงความคิดเห็น