นักพัฒนากำลังถกเถียงอย่างแข็งขันเกี่ยวกับ bknd ซึ่งเป็นทางเลือกแทน Firebase ที่มีน้ำหนักเบา โดยสัญญาว่าจะทำให้การพัฒนาแบ็กเอนด์ง่ายขึ้น พร้อมทั้งมีตัวเลือกการติดตั้งใช้งานที่ยืดหยุ่น โปรเจกต์โอเพนซอร์สนี้ได้สร้างความสนใจเป็นพิเศษในเรื่องกลไกการยืนยันตัวตนและความยืดหยุ่นในการติดตั้งใช้งาน โดยชุมชนกำลังสำรวจว่ามันเปรียบเทียบกับโซลูชันที่มีอยู่แล้วอย่างไร
ข้อกังวลเกี่ยวกับการยืนยันตัวตนและการอนุญาต
ความปลอดภัยยังคงเป็นสิ่งสำคัญอันดับต้นๆ สำหรับนักพัฒนาที่กำลังประเมินโซลูชันแบ็กเอนด์แบบบริการ ในการสนทนาของชุมชน การนำการยืนยันตัวตนไปใช้งานได้กลายเป็นข้อกังวลหลัก โดยนักพัฒนาตั้งคำถามว่า bknd จัดการกับการควบคุมการเข้าถึงของผู้ใช้อย่างไร ตามที่ผู้สร้างโปรเจกต์กล่าวไว้ bknd นำเสนอการยืนยันตัวตนแบบหลายกลยุทธ์คล้ายกับ Firebase โดยรองรับการรวมอีเมลและรหัสผ่าน และโปรโตคอล OAuth/OIDC พร้อมตัวเลือกที่กำหนดค่าไว้ล่วงหน้าสำหรับการรวม Google และ GitHub
ระบบการอนุญาตใช้การควบคุมการเข้าถึงตามบทบาท โดยที่สิทธิ์จะถูกผูกกับบทบาทที่จะถูกกำหนดให้กับผู้ใช้ต่อไป การอ้างสิทธิ์จะถูกส่งผ่าน JWT (JSON Web Tokens) ที่มีพารามิเตอร์อายุการใช้งาน ความลับ และการแฮชที่สามารถกำหนดค่าได้ ปัจจุบัน ระบบทำงานแบบไร้สถานะ ซึ่งหมายความว่าโทเค็นไม่ได้ถูกตรวจสอบกับที่เก็บเซสชัน แม้ว่านักพัฒนาได้แสดงความเต็มใจที่จะนำฟังก์ชันดังกล่าวมาใช้ตามข้อเสนอแนะของชุมชน
ผมนึกไม่ออกว่ามีการดำเนินการใดที่ผมไม่ต้องการตรรกะแบ็กเอนด์คั่นกลาง กฎของ Firebase ไม่เพียงพอ
ความรู้สึกนี้เน้นย้ำถึงความสงสัยที่นักพัฒนาบางคนมีต่อโซลูชันแบ็กเอนด์แบบบริการที่อาจทำให้การควบคุมการเข้าถึงง่ายเกินไป อย่างไรก็ตาม bknd พยายามแก้ไขปัญหานี้โดยอนุญาตให้นักพัฒนาเชื่อมต่อกับเหตุการณ์ของระบบและปรับแต่งการอนุญาตตามความต้องการเฉพาะ
ความยืดหยุ่นในการติดตั้งใช้งานและการรวมระบบ
ปัจจัยที่ทำให้ bknd แตกต่างอย่างมีนัยสำคัญดูเหมือนจะเป็นความยืดหยุ่นในการติดตั้งใช้งาน ไม่เหมือนกับบริการแบ็กเอนด์แบบดั้งเดิมที่ต้องการการโฮสต์แยกต่างหาก bknd สามารถฝังตรงเข้าไปในแอปพลิเคชันฟูลสแต็กได้ ซึ่งได้สร้างความสับสนในชุมชนเกี่ยวกับวิธีที่ข้อมูลรับรองฐานข้อมูลยังคงปลอดภัยในการกำหนดค่าดังกล่าว
ผู้สร้างโปรเจกต์ได้อธิบายว่าเมื่อใช้เฟรมเวิร์คเช่น Next.js, Remix หรือ Astro, bknd จะทำงานเฉพาะบนฝั่งเซิร์ฟเวอร์เท่านั้น ซึ่งรักษาการแบ่งแยกความรับผิดชอบที่เหมาะสม สำหรับการติดตั้งใช้งานแบบ edge, bknd รองรับแพลตฟอร์มเช่น Cloudflare โดยใช้ Workers, D1 และ R2 ทำให้มีศักยภาพในการขยายได้มากกว่าทางเลือกอื่นๆ เช่น PocketBase
ความยืดหยุ่นในการติดตั้งใช้งานนี้ขยายไปถึงสภาพแวดล้อมที่ไม่ใช่ React ด้วย ในขณะที่โปรเจกต์นำเสนอการรวมเฉพาะสำหรับเฟรมเวิร์ค React ฟังก์ชันหลักสามารถเข้าถึงได้ผ่าน REST APIs ที่ทำงานกับเทคสแต็กใดๆ โปรเจกต์นี้รวม TypeScript SDK แต่ยังคงเป็นอิสระจากเฟรมเวิร์คในแก่นของมัน
โครงสร้างแพ็กเกจของ bknd
การนำเข้า | วัตถุประสงค์ |
---|---|
bknd |
แบ็กเอนด์รวมถึง API และอะแดปเตอร์ |
bknd/ui |
คอมโพเนนต์ Admin UI สำหรับเฟรมเวิร์ก React |
bknd/client |
TypeScript SDK และ React hooks สำหรับจุดเชื่อมต่อ API |
bknd/elements |
คอมโพเนนต์ React สำหรับการยืนยันตัวตนและสื่อ |
ขนาดแพ็กเกจ
- bknd: 53.7 KB
- bknd/client: 4.8 KB
- bknd/elements: 13.4 KB
- bknd/ui: 235.7 KB
ขนาดที่น้อยที่สุดของแอป bknd ที่สมบูรณ์ในรูปแบบ API: ~212 KB เมื่อบีบอัด
การตอบรับจากชุมชน
ผู้ใช้รายแรกๆ ได้แสดงความชื่นชมต่อแนวทางของ bknd โดยผู้ใช้รายหนึ่งได้ขอบคุณผู้สร้างโปรเจกต์เป็นการเฉพาะ การผสมผสานของความเรียบง่าย ความยืดหยุ่น และรูปแบบการยืนยันตัวตนที่คุ้นเคยดูเหมือนจะตรงกับนักพัฒนาที่กำลังมองหาทางเลือกอื่นนอกเหนือจากบริการที่มีอยู่แล้วเช่น Firebase และ Supabase
ในขณะที่ bknd ยังคงพัฒนาต่อไป (ปัจจุบันก่อนเวอร์ชัน 1.0.0) ข้อเสนอแนะของชุมชนน่าจะกำหนดลำดับความสำคัญของฟีเจอร์ ผู้สร้างโปรเจกต์ได้มีส่วนร่วมอย่างแข็งขันกับคำถามของผู้ใช้ แสดงให้เห็นถึงการตอบสนองต่อข้อกังวลเกี่ยวกับการยืนยันตัวตน รูปแบบการติดตั้งใช้งาน และความสามารถในการรวมระบบ
สำหรับนักพัฒนาที่สนใจสำรวจ bknd โปรเจกต์นี้นำเสนอตัวเลือกเริ่มต้นอย่างรวดเร็ว (npx bknd run
) และเอกสารละเอียดที่ docs.bknd.io ด้วยขนาดที่เล็ก (แพ็คเกจหลักมีขนาดเพียง 53.7 KB) และการเน้นความเข้ากันได้กับมาตรฐานเว็บ bknd แสดงถึงตัวเลือกใหม่ที่น่าสนใจในภูมิทัศน์แบ็กเอนด์แบบบริการที่มีการแข่งขันมากขึ้นเรื่อยๆ
อ้างอิง: bknd-io/bknd