XMLHttpRequest: phương thức setPrivateToken()

Note: This feature is available in Web Workers, except for Service Workers.

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Phương thức XMLHttpRequest setPrivateToken() thêm thông tin private state token vào một lệnh gọi XMLHttpRequest, để bắt đầu các hoạt động private state token.

Cú pháp

js
setPrivateToken(privateToken)

Tham số

privateToken

Một đối tượng chứa các tùy chọn để bắt đầu hoạt động private state token. Các thuộc tính có thể bao gồm:

issuers Optional

Một mảng chuỗi chứa các URL của nhà phát hành mà bạn muốn chuyển tiếp bản ghi đổi thưởng. Cài đặt này bị bỏ qua trừ khi operation được đặt thành send-redemption-record, trong trường hợp đó mảng issuers phải được bao gồm.

operation

Một chuỗi đại diện cho loại hoạt động token bạn muốn bắt đầu. Các giá trị có thể là:

token-request

Bắt đầu hoạt động yêu cầu token.

token-redemption

Bắt đầu hoạt động đổi thưởng token.

send-redemption-record

Bắt đầu hoạt động gửi bản ghi đổi thưởng.

refreshPolicy Optional

Một giá trị được liệt kê chỉ định hành vi mong đợi khi một bản ghi đổi thưởng chưa hết hạn cho người dùng và trang web hiện tại đã được đặt trước đó. Cài đặt này bị bỏ qua trừ khi operation được đặt thành token-redemption. Các giá trị có thể là:

none

Bản ghi đổi thưởng đã đặt trước đó sẽ được sử dụng, và một bản ghi mới không nên được phát hành. Đây là giá trị mặc định.

refresh

Một bản ghi đổi thưởng mới luôn được phát hành.

version

Một số chỉ định phiên bản của giao thức mật mã bạn muốn sử dụng khi tạo token. Hiện tại giá trị này luôn được đặt thành 1, là phiên bản duy nhất mà đặc tả hỗ trợ. Khi chỉ định tùy chọn privateToken, thuộc tính này là bắt buộc.

Giá trị trả về

Không có (undefined).

Ngoại lệ

InvalidStateError DOMException

Được ném nếu XMLHttpRequest liên kết không ở trạng thái đã mở, hoặc send() đã được gọi trên nó.

NotAllowedError DOMException

Được ném nếu việc sử dụng các hoạt động Private State Token API bị cấm cụ thể bởi private-state-token-issuance hoặc private-state-token-redemption Permissions Policy.

TypeError

Được ném nếu operation được đặt thành send-redemption-record, và mảng issues rỗng hoặc không được đặt, hoặc một hoặc nhiều issuers được chỉ định không phải là URL HTTPS đáng tin cậy.

Ví dụ

Phát hành một private token

js
const hasToken = await Document.hasPrivateToken(`issuer.example`);
if (!hasToken) {
  const request = new XMLHttpRequest();
  request.open(
    "POST",
    "https://issuer.example/.well-known/private-state-token/issuance",
  );
  request.setPrivateToken({
    version: 1,
    operation: "token-request",
  });
  req.send();
}

Đổi thưởng một private token

js
const request = new XMLHttpRequest();
request.open(
  "POST",
  "https://issuer.example/.well-known/private-state-token/redemption",
);
request.setPrivateToken({
  version: 1,
  operation: "token-redemption",
  refreshPolicy: "none",
});
req.send();

Chuyển tiếp một bản ghi đổi thưởng

js
const hasRR = await Document.hasRedemptionRecord(`issuer.example`);
if (hasRR) {
  const request = new XMLHttpRequest();
  request.open("POST", "some-resource.example");
  request.setPrivateToken({
    version: 1,
    operation: "send-redemption-record",
    issuers: ["https://issuer.example"],
  });
  req.send();
}

Các đặc tả kỹ thuật

Specification
Private State Token API
# dom-xmlhttprequest-setprivatetoken

Tương thích trình duyệt

Xem thêm