Cách hoạt động
Khi bạn yêu cầu Inertia mã hóa history của ứng dụng, nó dùngCrypto API tích hợp trong trình duyệt để mã hóa dữ liệu trang hiện tại trước khi đẩy vào history state. Khóa tương ứng được lưu trong session storage của trình duyệt. Khi người dùng quay lại trang, dữ liệu được giải mã bằng khóa lưu trong session storage.
Khi bạn yêu cầu Inertia xóa history state, nó xóa khóa hiện có khỏi session storage và tạo khóa mới. Nếu sau đó cố giải mã history state bằng khóa mới, quá trình sẽ thất bại và Inertia sẽ gửi request mới về server để lấy lại dữ liệu trang.
Mã hóa lịch sử dựa vào window.crypto.subtle, API chỉ khả dụng trong môi trường bảo mật (website đã bật SSL).
Chủ động bật tính năng
Mã hóa lịch sử là tính năng opt-in. Có một số cách để bật:Mã hóa toàn cục
Nếu muốn bật mã hóa lịch sử trên toàn ứng dụng, hãy đặt giá trị configinertia.history.encrypt thành true.
Bạn có thể tắt mã hóa cho từng trang cụ thể bằng cách gọi phương thức Inertia::encryptHistory() trước khi trả response.
Mã hóa theo request
Để mã hóa lịch sử của một request riêng lẻ, chỉ cần gọi phương thứcInertia::encryptHistory() trước khi trả response.
Middleware mã hóa
Để mã hóa một nhóm route, bạn có thể dùng middlewareEncryptHistory đi kèm Inertia.
Xóa lịch sử
Để xóa history state, bạn có thể gọi phương thứcInertia::clearHistory() trước khi trả response.
router.clearHistory().