Sử dụng API Key trong NocoBase
Hướng dẫn này thông qua ví dụ "danh sách công việc" thực tế, minh họa cách sử dụng API Key trong NocoBase để lấy dữ liệu. Vui lòng làm theo hướng dẫn từng bước dưới đây để hiểu toàn bộ workflow.

1 Hiểu về API Key
API Key là một loại security token, dùng để xác thực các API request từ người dùng được ủy quyền. Nó đóng vai trò là thông tin xác thực, kiểm tra danh tính của bên gửi request khi truy cập hệ thống NocoBase qua web app, mobile app hoặc backend script.
Định dạng trong HTTP request header:
Tiền tố "Bearer" cho biết phía sau là API Key đã được xác thực dùng để kiểm tra quyền của bên gửi request.
Các kịch bản sử dụng phổ biến
API Key thường được sử dụng trong các kịch bản sau:
- Truy cập từ ứng dụng client: Trình duyệt web và mobile app sử dụng API Key để xác thực danh tính người dùng, đảm bảo chỉ người dùng được ủy quyền mới có thể truy cập dữ liệu.
- Thực thi tác vụ tự động: Tiến trình background và các tác vụ định kỳ sử dụng API Key để thực thi an toàn các thao tác cập nhật, đồng bộ dữ liệu và ghi log.
- Phát triển và kiểm thử: Lập trình viên sử dụng API Key trong quá trình debug và test để giả lập các request đã được xác thực và xác minh response từ API.
API Key cung cấp nhiều ưu điểm bảo mật: xác thực danh tính, giám sát sử dụng, giới hạn tốc độ request và phòng ngừa mối đe dọa, đảm bảo NocoBase hoạt động ổn định và an toàn.
2 Tạo API Key trong NocoBase
2.1 Bật plugin Xác thực: API Key
Đảm bảo plugin tích hợp sẵn Xác thực: API Key đã được bật. Sau khi bật, một trang cấu hình API Key mới sẽ xuất hiện trong cài đặt hệ thống.

2.2 Tạo bảng dữ liệu thử nghiệm
Để minh họa, tạo một bảng dữ liệu tên là todos, bao gồm các trường sau:
idTiêu đề (title)Đã hoàn thành (completed)

Thêm một số bản ghi mẫu vào bảng dữ liệu:
- Ăn cơm
- Đi ngủ
- Chơi game

2.3 Tạo và phân vai trò
API Key được liên kết với vai trò người dùng, hệ thống xác định quyền request dựa trên vai trò được phân. Trước khi tạo API Key, phải tạo vai trò và cấu hình quyền phù hợp. Tạo một vai trò tên là "Vai trò API Todo" và cấp cho nó quyền truy cập đầy đủ vào bảng todos.

Nếu khi tạo API Key, "Vai trò API Todo" không khả dụng, hãy đảm bảo người dùng hiện tại đã được phân vai trò này:

Sau khi phân vai trò, làm mới trang và điều hướng đến trang quản lý API Key. Nhấp "Thêm API Key" để xác minh "Vai trò API Todo" xuất hiện trong danh sách chọn vai trò.

Để kiểm soát truy cập tốt hơn, có thể cân nhắc tạo tài khoản người dùng riêng (ví dụ "Người dùng API Todo") chuyên dùng cho việc quản lý và kiểm thử API Key. Phân "Vai trò API Todo" cho người dùng này.

2.4 Tạo và lưu API Key
Sau khi gửi form, hệ thống sẽ hiển thị thông báo xác nhận và API Key vừa được tạo. Lưu ý quan trọng: Hãy sao chép và lưu trữ key này an toàn ngay lập tức, vì lý do bảo mật, key này sẽ không hiển thị lại lần nữa.

Ví dụ API Key:
2.5 Lưu ý quan trọng
- Thời gian hiệu lực của API Key được quyết định bởi cài đặt hết hạn được cấu hình lúc tạo.
- Việc tạo và xác thực API Key phụ thuộc vào biến môi trường
APP_KEY. Đừng chỉnh sửa biến này, nếu không sẽ làm mất hiệu lực tất cả API Key hiện có trong hệ thống.
3 Kiểm thử xác thực API Key
3.1 Sử dụng plugin tài liệu API
Mở plugin Tài liệu API để xem method, URL, tham số và header của từng endpoint API.

3.2 Hiểu các thao tác CRUD cơ bản
NocoBase cung cấp API CRUD chuẩn (Create, Read, Update, Delete) để thao tác dữ liệu:
-
Truy vấn danh sách (interface list):
-
Thêm bản ghi (interface create):
-
Sửa bản ghi (interface update):
-
Xóa bản ghi (interface delete):
Trong đó:
{baseURL}: URL hệ thống NocoBase{collectionName}: Tên bảng dữ liệu
Ví dụ: instance cục bộ localhost:13000, tên bảng dữ liệu todos:
3.3 Kiểm thử bằng Postman
Tạo GET request trong Postman với cấu hình sau:
- URL: Endpoint request (ví dụ
http://localhost:13000/api/todos:list) - Headers: Thêm header
Authorizationvới giá trị:

Response thành công:
Response lỗi (API Key không hợp lệ/hết hạn):
Khắc phục sự cố: Nếu xác thực thất bại, vui lòng kiểm tra quyền vai trò, liên kết API Key và định dạng token.
3.4 Xuất mã request
Postman cho phép xuất request theo nhiều định dạng. Ví dụ lệnh cURL:

4 Sử dụng API Key trong JS Block
NocoBase 2.0 hỗ trợ viết trực tiếp mã JavaScript thuần trong trang bằng JS Block. Ví dụ này minh họa cách dùng API Key để lấy dữ liệu từ API bên ngoài.
Tạo JS Block
Thêm JS Block vào trang NocoBase, dùng đoạn code sau để lấy dữ liệu todo:
Các điểm chính
- ctx.requireAsync(): Tải động thư viện bên ngoài (như axios) để thực hiện HTTP request
- ctx.message: Hiển thị thông báo cho người dùng (loading, success, error)
- Xác thực API Key: Truyền API Key trong header
Authorizationvới tiền tốBearer - Xử lý response: Xử lý dữ liệu trả về theo nhu c ầu (hiển thị, chuyển đổi, v.v.)
5 Tổng kết
Hướng dẫn này đã bao quát toàn bộ workflow sử dụng API Key trong NocoBase:
- Cài đặt: Bật plugin API Key và tạo bảng dữ liệu thử nghiệm
- Cấu hình: Tạo vai trò có quyền phù hợp và tạo API Key
- Kiểm thử: Dùng Postman và plugin tài liệu API để xác minh xác thực API Key
- Tích hợp: Sử dụng API Key trong JS Block

Tài nguyên khác:

