Cách hoạt động
Khi bạn yêu cầu Inertia mã hóa lịch sử ứng dụng, nó sử dụngcrypto API tích hợp của trình duyệt để mã hóa dữ liệu trang hiện tại trước khi push vào history state. Key tương ứng được lưu trong session storage của trình duyệt. Khi người dùng quay lại một trang, dữ liệu được giải mã bằng key lưu trong session storage.
Khi bạn yêu cầu Inertia xóa history state, Inertia chỉ cần xóa key hiện tại khỏi session storage và tạo key mới. Nếu cố giải mã history state cũ bằng key mới, việc giải mã sẽ thất bại và Inertia sẽ gửi request mới đến máy chủ để 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().