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
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 :
issuersFacultatif-
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
operationest défini sursend-redemption-record, auquel cas le tableauissuersdoit ê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.
refreshPolicyFacultatif-
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
operationest défini surtoken-redemption. Les valeurs possibles sont : 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'optionprivateToken, cette propriété est obligatoire.
Valeur de retour
Aucune (undefined).
Exceptions
InvalidStateErrorDOMException-
Levée si l'objet
XMLHttpRequestassocié n'est pas dans un état ouvert, ou sisend()a déjà été appelé sur celui-ci. NotAllowedErrorDOMException-
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-issuanceouprivate-state-token-redemption. TypeError-
Levée si
operationest définie sursend-redemption-recordet si le tableauissuesest vide ou n'est pas défini, ou si une ou plusieurs des adresses HTTPS définies dansissuersne sont pas dignes de confiance.
Exemples
>Émettre un jeton d'état privé
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é
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
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> |