開發者們正在積極討論 bknd,這是一個輕量級的 Firebase 替代方案,它承諾簡化後端開發同時提供靈活的部署選項。這個開源專案在身份驗證機制和部署靈活性方面引起了特別的興趣,社群正在探討它與現有解決方案的比較。
身份驗證和授權問題
安全性仍然是開發者評估後端即服務解決方案時的首要考慮因素。在社群討論中,身份驗證實現成為主要關注點,開發者們質疑 bknd 如何處理使用者訪問控制。根據專案建立者的說法,bknd 提供了類似 Firebase 的多策略身份驗證,支援電子郵件/密碼組合和 OAuth/OIDC 協議,併為 Google 和 GitHub 整合提供預配置選項。
授權系統採用基於角色的訪問控制,許可權附加到角色上,然後將角色分配給使用者。宣告透過 JWT(JSON Web Tokens)傳輸,具有可配置的生命週期、金鑰和雜湊引數。目前,該系統以無狀態方式執行,這意味著令牌不會針對會話儲存進行驗證,儘管開發者表示願意根據社群反饋實現此類功能。
「我想不出任何不需要在中間加入後端邏輯的操作。Firebase 規則是不夠的。」
這種觀點突顯了一些開發者對可能過度簡化訪問控制的後端即服務解決方案的懷疑態度。然而,bknd 試圖透過允許開發者掛鉤系統事件並根據特定需求自定義授權來解決這個問題。
部署靈活性和整合
bknd 的一個顯著區別似乎是其部署靈活性。與需要單獨託管的傳統後端服務不同,bknd 可以直接嵌入到全棧應用程式中。這在社群中引起了一些關於資料庫憑證在此類配置中如何保持安全的疑問。
專案建立者澄清說,當使用 Next.js、Remix 或 Astro 等框架時,bknd 僅在伺服器端執行,保持適當的關注點分離。對於邊緣部署,bknd 支援使用 Workers、D1 和 R2 的 Cloudflare 等平臺,使其可能比 PocketBase 等替代方案更具可擴充套件性。
這種部署靈活性也擴充套件到非 React 環境。雖然該專案為 React 框架提供了特定的整合,但核心功能可透過適用於任何技術棧的 REST API 訪問。該專案包含一個 TypeScript SDK,但其核心仍然與框架無關。
bknd 包結構
匯入 | 用途 |
---|---|
bknd |
後端,包括 API 和介面卡 |
bknd/ui |
用於 React 框架的管理介面元件 |
bknd/client |
用於 API 端點的 TypeScript SDK 和 React hooks |
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(gzip 壓縮後)
社群反響
早期採用者對 bknd 的方法表示讚賞,一位使用者特別感謝了專案建立者。簡單性、靈活性和熟悉的身份驗證模式的組合似乎與尋找 Firebase 和 Supabase 等已建立服務替代品的開發者產生了共鳴。
隨著 bknd 繼續開發(目前為 1.0.0 之前版本),社群的反饋可能會塑造其功能優先順序。專案建立者積極回應使用者的問題,對身份驗證、部署模型和整合能力的關注表現出響應性。
對於有興趣探索 bknd 的開發者,該專案提供了快速啟動選項(npx bknd run
)和詳細的文件(docs.bknd.io)。憑藉其小巧的體積(核心包僅為 53.7 KB)和對 Web 標準相容性的強調,bknd 在日益擁擠的後端即服務領域代表了一個有趣的新選擇。
參考:bknd-io/bknd