Compartir a través de


Enviar token de autenticación

Para autenticar a un cliente cuando inicia un chat, pase un token de autenticación a la Plataforma omnicanal para Customer Service. Este token se usa para validar un cliente que ha iniciado sesión desde un dominio y para extraer información en función de las variables de contexto definidas. La autenticación personalizada es opcional y solo es relevante cuando el widget de chat se hospeda fuera de los portales de Power Apps.

Importante

  • En la carga del token web JSON (JWT), el valor proporcionado para la lwicontexts clave debe ser el contexto personalizado serializado.
  • El contexto personalizado es una colección de pares clave-valor. Solo se permiten valores primitivos para cualquier clave.
  • Las claves del contexto personalizado deben corresponder a las variables de contexto que se crean para el flujo de trabajo asociado en la Plataforma omnicanal para Customer Service.
  • El widget de chat en vivo invocaría al proveedor de token de autenticación al iniciar un nuevo chat.

Los SDK relacionados con el proveedor de tokens de autenticación solo se aplican si la autenticación está habilitada para el widget. Para habilitar la autenticación para el widget, consulte Crear ajustes de autenticación de chat.

Sigue estos pasos para enviar un token de autenticación al iniciar un chat:

  1. Genere un JWT válido a partir de la carga útil JSON. Más información: setAuthTokenProvider

  2. Los métodos de chat en vivo deben invocarse después de que se genere el evento lcw:ready . Puede escuchar este evento agregando su propio detector de eventos en el objeto window.

  3. Una vez generado el lcw:ready evento, registre un proveedor de tokens de autenticación con chat en vivo mediante el método setAuthTokenProvider .

    Nota:

    Para evitar el tiempo de espera, la función authTokenProvider del método setAuthTokenProvider debe responder en un plazo de 10 segundos.

  4. Use el método startChat para iniciar el chat.

Código de ejemplo

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
Referencia de la API de JavaScript del SDK de chat en vivo
Enviar contexto personalizado