Cette page a été traduite à partir de l'anglais par la communauté. Vous pouvez contribuer en rejoignant la communauté francophone sur MDN Web Docs.

View in English Always switch to English

XMLHttpRequest : méthode setPrivateToken()

Note : Cette fonctionnalité est disponible via les Web Workers, sauf pour les Service Workers.

Expérimental: Il s'agit d'une technologie expérimentale.
Vérifiez attentivement le tableau de compatibilité des navigateurs avant de l'utiliser en production.

La méthode setPrivateToken() de l'interface XMLHttpRequest ajoute des informations de jeton d'état privé à un appel XMLHttpRequest, pour initier des opérations de jeton d'état privé.

Syntaxe

js
setPrivateToken(privateToken)

Paramètres

privateToken

Un objet contenant des options pour initier une opération de jeton d'état privé. Les propriétés possibles incluent :

issuers Facultatif

Un tableau de chaînes de caractères contenant les URL des émetteurs pour lesquels vous souhaitez transmettre les enregistrements de remboursement. Ce paramètre est ignoré sauf si operation est défini sur send-redemption-record, auquel cas le tableau issuers doit être inclus.

operation

Une chaîne de caractères représentant le type d'opération de jeton que vous souhaitez initier. Les valeurs possibles sont :

token-request

Initialise une opération de demande de jeton.

token-redemption

Initialise une opération d'échange de jeton.

send-redemption-record

Initialise une opération d'envoi du registre d'échange.

refreshPolicy Facultatif

Une valeur énumérée qui définit le comportement attendu lorsqu'un enregistrement d'échange non expiré pour l'utilisateur·ice et le site actuels a été précédemment défini. Ce paramètre est ignoré sauf si operation est défini sur token-redemption. Les valeurs possibles sont :

none

L'enregistrement d'échange précédemment défini doit être utilisé, et un nouveau ne doit pas être émis. Il s'agit de la valeur par défaut.

refresh

Un nouvel enregistrement d'échange est toujours émis.

version

Un nombre indiquant la version du protocole cryptographique que vous souhaitez utiliser lors de la génération d'un jeton. Actuellement, cette valeur est toujours définie sur 1, qui est la seule version prise en charge par la spécification. Lors de la spécification de l'option privateToken, cette propriété est obligatoire.

Valeur de retour

Aucune (undefined).

Exceptions

InvalidStateError DOMException

Levée si l'objet XMLHttpRequest associé n'est pas dans un état ouvert, ou si send() a déjà été appelé sur celui-ci.

NotAllowedError DOMException

Levée si l'utilisation des opérations de l'API Private State Token est spécifiquement interdite par une politique d'autorisations private-state-token-issuance ou private-state-token-redemption.

TypeError

Levée si operation est définie sur send-redemption-record et si le tableau issues est vide ou n'est pas défini, ou si une ou plusieurs des adresses HTTPS définies dans issuers ne sont pas dignes de confiance.

Exemples

Émettre un jeton d'état privé

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

Échanger un jeton d'état privé

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

Transmettre un enregistrement d'échange

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

Spécifications

Spécification
Private State Token API
# dom-xmlhttprequest-setprivatetoken

Compatibilité des navigateurs

Voir aussi