Partager via


Envoyer un jeton d’authentification

Pour authentifier un client lorsqu’il démarre une conversation, transmettez un jeton d’authentification à Omnicanal pour le service clientèle. Ce jeton est utilisé pour valider un client connecté à partir d’un domaine et pour extraire des informations en fonction des variables de contexte définies. L’authentification personnalisée est facultative et n’est pertinente que lorsque le widget de conversation est hébergé en dehors des portails Power Apps.

Important

  • Dans la charge utile du jeton Web JSON (JWT), la valeur fournie pour la lwicontexts clé doit être le contexte personnalisé sérialisé.
  • Le contexte personnalisé est une collection de paires clé/valeur. Seules les valeurs primitives sont autorisées pour une clé.
  • Les clés du contexte personnalisé doivent correspondre aux variables de contexte créées pour le flux de travail associé dans Omnicanal pour Customer Service.
  • Le fournisseur de jeton d’authentification serait appelé par le widget de chat en direct lors du démarrage d’un nouveau chat.

Les SDK liés au fournisseur de jeton d’authentification ne s’appliquent que si l’authentification est activée pour le widget. Pour activer l’authentification de votre widget, consultez la section Créer des paramètres d’authentification de chat.

Suivez ces étapes pour envoyer un jeton d’authentification lorsque vous démarrez une discussion :

  1. Générez un JWT valide à partir de la charge utile JSON. Plus d’informations : setAuthTokenProvider

  2. Les méthodes de chat en direct doivent être appelées après le déclenchement de l’événement lcw :ready . Vous pouvez écouter cet événement en ajoutant votre propre écouteur d’événements sur l’objet window.

  3. Une fois l’événement lcw:ready déclenché, enregistrez un fournisseur de jetons d’authentification avec le chat en direct à l’aide de la méthode setAuthTokenProvider .

    Note

    Pour éviter le délai d’expiration, la fonction authTokenProvider dans la méthode setAuthTokenProvider doit répondre dans les 10 secondes.

  4. Utilisez la méthode startChat pour démarrer le chat.

Exemple de code

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
Référence de l’API JavaScript du SDK de chat en direct
Envoyer un contexte personnalisé