Envia el testimoni d'autenticació

Per autenticar un client quan iniciï un xat, passeu un testimoni d'autenticació a l'Omnicanal per al Customer Service. Aquest testimoni s'utilitza per validar un client que ha iniciat la sessió des d'un domini i per extreure informació en funció de les variables de context que es defineixen. L'autenticació personalitzada és opcional i només és rellevant quan el giny de xat s'allotja fora dels portals del Power Apps.

Important

  • A la càrrega útil del JSON Web Token (JWT), el valor proporcionat per a la lwicontexts clau ha de ser el context personalitzat serialitzat.
  • El context personalitzat és una col·lecció de parells clau/valor. Només es permeten valors primitius per a qualsevol clau.
  • Les claus del context personalitzat han de correspondre a les variables de context que es creen per a la seqüència de treball associada a l'Omnicanal per al Customer Service.
  • El proveïdor de testimonis d'autenticació seria invocat pel giny de xat en directe quan s'inicia un xat nou.

Els SDK relacionats amb el proveïdor de testimonis d'autenticació només s'apliquen si l'autenticació està habilitada per al giny. Per habilitar l'autenticació del giny, consulta Crear la configuració d'autenticació de xat.

Seguiu aquests passos per enviar un testimoni d'autenticació quan inicieu un xat:

  1. Genereu un JWT vàlid a partir de la càrrega útil JSON. Més informació: setAuthTokenProvider

  2. Els mètodes de xat en directe s'han d'invocar després que s'aixequi l'esdeveniment lcw:ready . Podeu escoltar aquest esdeveniment afegint el vostre propi oient d'esdeveniments a l'objecte window.

  3. Un cop generat l'esdeveniment lcw:ready , registreu un proveïdor de testimonis d'autenticació amb el xat en directe mitjançant el mètode setAuthTokenProvider .

    Nota

    Per evitar el temps d'espera, la funció authTokenProvider del mètode setAuthTokenProvider ha de respondre en un termini de 10 segons.

  4. Utilitzeu el mètode startChat per iniciar el xat.

Codi d'exemple

let payloadToEncrypt = {
    "sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",
    "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\"}",
    "iat" : 1542622071,
    "iss" : "contosohelp.com",
    "exp" : 1542625672,
    "nbf" : 1542622072
};

function convertToJwtToken(payloadToEncrypt){
  // Ideally, you should call your service to convert the payload to a valid JWT token
  return Promise.resolve("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4N2I0ZDA2Yy1hYmMyLWU4MTEtYTliMC0wMDBkM2ExMGUwOWUiLCJsd2ljb250ZXh0cyI6IntcIm1zZHluX2NhcnR2YWx1ZVwiOlwiMTAwMDBcIiwgXCJtc2R5bl9pc3ZpcFwiOlwiZmFsc2VcIn0iLCJpYXQiOjE1NDI2MjIwNzEsImlzcyI6ImNvbnRvc29oZWxwLmNvbSIsImV4cCI6MTU0MjYyNTY3MiwibmJmIjoxNTQyNjIyMDcyfQ.r37z1M5rMyRYMOJ-rhyTRYFOgvl9N7KvTMueSFPkiuM");
}

function authTokenProvider(callback){
    convertToJwtToken(payloadToEncrypt).then(function (jwtToken){
    // Calling the callback with the valid JWT token
   callback(jwtToken);
   });
}

window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
    // Handle live chat ready event
    // Can use the SDK methods now
    // Setting authentication token provider to be used for the chat
    Microsoft.Omnichannel.LiveChatWidget.SDK.setAuthTokenProvider(authTokenProvider);

   // Starting a new chat
   Microsoft.Omnichannel.LiveChatWidget.SDK.startChat();
});

window.addEventListener("lcw:error", function handleLivechatErrorEvent(errorEvent){
  // Handle livechat error event
   console.log(errorEvent);
});

setAuthTokenProvider
getAuthTokenProvider
removeAuthTokenProvider
Referència de l'API JavaScript de l'SDK de xat en directe
Enviar context personalitzat