Các nhà phát triển đang tích cực thảo luận về bknd, một giải pháp thay thế nhẹ cho Firebase, hứa hẹn đơn giản hóa việc phát triển backend đồng thời cung cấp các tùy chọn triển khai linh hoạt. Dự án mã nguồn mở này đã tạo ra sự quan tâm đặc biệt xoay quanh cơ chế xác thực và tính linh hoạt trong triển khai, với cộng đồng đang tìm hiểu cách nó so sánh với các giải pháp đã được thiết lập.
Các vấn đề về xác thực và phân quyền
Bảo mật vẫn là ưu tiên hàng đầu đối với các nhà phát triển khi đánh giá các giải pháp backend-as-a-service. Trong các cuộc thảo luận của cộng đồng, việc triển khai xác thực nổi lên như một mối quan tâm chính, với các nhà phát triển đặt câu hỏi về cách bknd xử lý kiểm soát truy cập người dùng. Theo người sáng tạo dự án, bknd cung cấp xác thực đa chiến lược tương tự như Firebase, hỗ trợ kết hợp email/mật khẩu và các giao thức OAuth/OIDC với các tùy chọn được cấu hình sẵn cho tích hợp với Google và GitHub.
Hệ thống phân quyền sử dụng kiểm soát truy cập dựa trên vai trò, trong đó các quyền được gắn với vai trò và sau đó được gán cho người dùng. Các tuyên bố được truyền tải qua JWT (JSON Web Tokens) với các tham số về thời gian sống, bí mật và băm có thể cấu hình. Hiện tại, hệ thống hoạt động không trạng thái, nghĩa là các token không được xác minh đối chiếu với một kho lưu trữ phiên, mặc dù nhà phát triển đã bày tỏ sẵn sàng triển khai chức năng như vậy dựa trên phản hồi của cộng đồng.
Tôi không thể nghĩ ra bất kỳ hoạt động nào mà tôi không muốn có một số logic backend ở giữa. Các quy tắc của Firebase không đủ.
Nhận xét này nhấn mạnh sự hoài nghi mà một số nhà phát triển duy trì về các giải pháp backend-as-a-service có thể đơn giản hóa quá mức việc kiểm soát truy cập. Tuy nhiên, bknd cố gắng giải quyết vấn đề này bằng cách cho phép các nhà phát triển kết nối vào các sự kiện hệ thống và tùy chỉnh việc phân quyền theo các yêu cầu cụ thể.
Tính linh hoạt trong triển khai và tích hợp
Một điểm khác biệt đáng kể của bknd dường như là tính linh hoạt trong triển khai. Không giống như các dịch vụ backend truyền thống đòi hỏi hosting riêng biệt, bknd có thể được nhúng trực tiếp vào các ứng dụng fullstack. Điều này đã tạo ra một số nhầm lẫn trong cộng đồng về cách thông tin đăng nhập cơ sở dữ liệu vẫn được bảo mật trong các cấu hình như vậy.
Người sáng tạo dự án đã làm rõ rằng khi sử dụng các framework như Next.js, Remix, hoặc Astro, bknd chỉ chạy ở phía máy chủ, duy trì sự phân tách thích hợp giữa các mối quan tâm. Đối với triển khai edge, bknd hỗ trợ các nền tảng như Cloudflare sử dụng Workers, D1 và R2, làm cho nó có khả năng mở rộng hơn các giải pháp thay thế như PocketBase.
Tính linh hoạt trong triển khai này cũng mở rộng đến các môi trường không sử dụng React. Mặc dù dự án cung cấp tích hợp cụ thể cho các framework React, chức năng cốt lõi có thể truy cập thông qua các API REST hoạt động với bất kỳ công nghệ nào. Dự án bao gồm một SDK TypeScript nhưng về cơ bản vẫn không phụ thuộc vào framework.
Cấu trúc gói bknd
Import | Mục đích |
---|---|
bknd |
Backend bao gồm các API và bộ chuyển đổi |
bknd/ui |
Các thành phần giao diện quản trị cho các framework React |
bknd/client |
SDK TypeScript và React hooks cho các endpoint API |
bknd/elements |
Các thành phần React cho xác thực và phương tiện |
Kích thước gói
- bknd: 53.7 KB
- bknd/client: 4.8 KB
- bknd/elements: 13.4 KB
- bknd/ui: 235.7 KB
Kích thước tối thiểu của một ứng dụng bknd đầy đủ dưới dạng API: ~212 KB đã nén gzip
Phản hồi từ cộng đồng
Những người sử dụng sớm đã bày tỏ sự đánh giá cao đối với cách tiếp cận của bknd, với một người dùng cụ thể cảm ơn người sáng tạo cho dự án. Sự kết hợp giữa đơn giản, linh hoạt và các mẫu xác thực quen thuộc dường như thu hút các nhà phát triển đang tìm kiếm các giải pháp thay thế cho các dịch vụ đã được thiết lập như Firebase và Supabase.
Khi bknd tiếp tục phát triển (hiện đang ở phiên bản trước 1.0.0), phản hồi của cộng đồng có khả năng sẽ định hình các ưu tiên tính năng của nó. Người sáng tạo dự án đã tích cực tham gia vào các câu hỏi của người dùng, thể hiện sự phản hồi nhanh chóng đối với các mối quan tâm về xác thực, mô hình triển khai và khả năng tích hợp.
Đối với các nhà phát triển quan tâm đến việc khám phá bknd, dự án cung cấp tùy chọn khởi động nhanh (npx bknd run
) và tài liệu chi tiết tại docs.bknd.io. Với dung lượng nhỏ (gói cốt lõi chỉ 53.7 KB) và nhấn mạnh vào khả năng tương thích với các tiêu chuẩn web, bknd đại diện cho một tùy chọn mới thú vị trong cảnh quan backend-as-a-service ngày càng đông đúc.
Tham khảo: bknd-io/bknd