Udostępnij przez


Wysyłanie tokenu uwierzytelniania

Aby uwierzytelnić klienta podczas rozpoczynania czatu, przekaż token uwierzytelniania do aplikacji Obsługa wielokanałowa dla Customer Service. Ten token służy do sprawdzania poprawności zalogowanego klienta z domeny oraz do wyodrębniania informacji na podstawie zdefiniowanych zmiennych kontekstowych. Uwierzytelnianie niestandardowe jest opcjonalne i ma zastosowanie tylko wtedy, gdy widżet czatu jest hostowany poza portalami Power Apps.

Ważne

  • W ładunku tokenu internetowego JSON (JWT) wartość podana dla klucza lwicontexts powinna być serializowanym kontekstem niestandardowym.
  • Kontekst niestandardowy to kolekcja par klucz/wartość. Tylko wartości pierwotne są dozwolone dla dowolnego klucza.
  • Klucze kontekstu niestandardowego muszą odpowiadać zmiennym kontekstowym, które są tworzone dla skojarzonego strumienia pracy w aplikacji Obsługa wielokanałowa dla Customer Service.
  • Dostawca tokena uwierzytelniania będzie wywoływany przez widżet czatu na żywo podczas rozpoczynania nowego czatu.

Zestawy SDK związane z dostawcą tokenu uwierzytelniania mają zastosowanie tylko wtedy, gdy uwierzytelnianie jest włączone dla widżetu. Aby włączyć uwierzytelnianie dla widżetu, zobacz Tworzenie ustawień uwierzytelniania czatu.

Wykonaj następujące kroki, aby wysłać token uwierzytelniania po rozpoczęciu czatu:

  1. Wygeneruj prawidłowy plik JWT na podstawie ładunku JSON. Więcej informacji: setAuthTokenProvider

  2. Metody czatu na żywo powinny być wywoływane po wywołaniu zdarzenia lcw:ready . To zdarzenie można wykrywać, dodając własny detektor zdarzeń do obiektu window.

  3. Po zgłoszeniu lcw:ready zdarzenia zarejestruj dostawcę tokenu uwierzytelniania za pomocą czatu na żywo przy użyciu metody setAuthTokenProvider .

    Uwaga / Notatka

    Aby uniknąć przekroczenia limitu czasu, funkcja authTokenProvider w metodzie setAuthTokenProvider musi odpowiedzieć w ciągu 10 sekund.

  4. Użyj metody startChat , aby rozpocząć czat.

Przykładowy kod

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 (Dostawca Tokenów)
Dokumentacja interfejsu API JavaScript zestawu SDK czatu na żywo
Wyślij kontekst niestandardowy