Giao diện
Cài đặt và sử dụng — Embed
Tổng quan
Plugin plugin-embed cho phép chia sẻ các trang Digiforce dưới dạng nhúng (embed) vào website hoặc ứng dụng bên ngoài thông qua iframe. Trang nhúng hiển thị nội dung đầy đủ nhưng ẩn header và sidebar — tạo trải nghiệm tích hợp liền mạch.
Yêu cầu
| Thành phần | Yêu cầu |
|---|---|
| Server Digiforce | Phiên bản >= 1.0 |
| Trình duyệt | Hỗ trợ iframe (mọi trình duyệt hiện đại) |
Bước 1: Kích hoạt plugin
- Truy cập Settings → Plugin Manager
- Tìm
plugin-embed - Bật công tắc Enable
Plugin đăng ký route /embed/:name — cho phép truy cập trang Digiforce qua URL nhúng.
Bước 2: Lấy Embed Link
Có hai cách lấy link nhúng:
Cách 1: Từ giao diện trang
- Mở trang muốn nhúng
- Nhấn vào Page Settings (biểu tượng cài đặt)
- Chọn Copy embedded link
- Link nhúng được sao chép vào clipboard
Cách 2: Tự xây dựng URL
Chuyển đổi URL admin thành URL embed:
URL admin: https://your-domain/admin/page-uid
URL embed: https://your-domain/embed/page-uidVới trang có tabs:
URL admin: https://your-domain/admin/page-uid/tabs/tab-uid
URL embed: https://your-domain/embed/page-uid/tabs/tab-uidBước 3: Nhúng vào website
Dán embed code vào HTML của website bên ngoài:
html
<iframe
src="https://your-domain.com/embed/page-uid"
width="100%"
height="600"
frameborder="0"
style="border: none;"
></iframe>Tùy chỉnh kích thước
| Thuộc tính | Mô tả | Ví dụ |
|---|---|---|
width | Chiều rộng iframe | 100%, 800px |
height | Chiều cao iframe | 600px, 100vh |
style | CSS tùy chỉnh | border: none; border-radius: 8px; |
Responsive embed
html
<div style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;">
<iframe
src="https://your-domain.com/embed/page-uid"
style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: none;"
allowfullscreen
></iframe>
</div>Xác thực (Authentication)
Embed có xác thực
Mặc định, trang nhúng yêu cầu đăng nhập. Nếu user chưa đăng nhập, hiển thị trang lỗi 403 "Not Authorized".
Để truyền token xác thực vào embed, thêm query parameter token:
https://your-domain.com/embed/page-uid?token=<bearer-token>Khi có token trong URL, plugin sẽ:
- Lưu token vào sessionStorage (không phải localStorage) để cách ly session
- Sử dụng token để xác thực API request
- Tạo storage prefix riêng để tránh xung đột với session chính
Bảo mật
Token trong URL có thể bị lộ qua browser history và server log. Chỉ sử dụng cách này cho môi trường nội bộ hoặc token có thời hạn ngắn.
Embed ẩn danh
Nếu muốn cho phép xem không cần đăng nhập, cần:
- Cấu hình ACL cho phép anonymous access cho collection tương ứng
- Trang phải sử dụng dữ liệu public
Giao diện nhúng
Plugin tạo layout đặc biệt cho trang nhúng:
| Thành phần | Hiển thị |
|---|---|
| Header | Ẩn (--df-header-height: 0px) |
| Sidebar | Ẩn |
| Nội dung trang | Hiển thị đầy đủ |
| KeepAlive | Giữ trạng thái trang khi chuyển tab |
Cấu hình nâng cao
Nhúng tab cụ thể
Nếu trang có nhiều tab, bạn có thể nhúng một tab cụ thể:
https://your-domain.com/embed/page-uid/tabs/tab-uidCấu hình CORS
Nếu website bên ngoài ở domain khác, cần cấu hình CORS trên server Digiforce:
CORS_ORIGIN=https://external-website.comLưu ý
- Trang bên ngoài nhúng Digiforce cần đảm bảo server Digiforce cho phép cross-origin request
- SessionStorage được sử dụng để cách ly embed session khỏi admin session
- Mỗi embed instance có storage prefix riêng (uid ngẫu nhiên)
- Plugin không thêm collection hay API mới — hoạt động hoàn toàn ở phía client
- Trang nhúng vẫn tuân theo ACL — user chỉ xem được dữ liệu mà role cho phép