Comparteix a través de


Enviar el símbolo de la autenticación

Para autenticar a un cliente cuando inicia un chat, pase un símbolo de autenticación a la Plataforma omnicanal para Customer Service. Este símbolo (token) se emplea para validar un cliente registrado en un dominio y para extraer la información basada en las variables de contexto se definen. La autenticación personalizada es opcional y es relevante solo cuando el chat widget está alojado fuera de portales Power Apps.

Importante

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

Los SDK relacionados con el proveedor de símbolos de autenticación son aplicables solo si la autenticación está habilitada para el widget. Para habilitar la autenticación de su widget, consulte Crear configuración de autenticación de chat.

Siga estos pasos para enviar un símbolo de autenticación al iniciar un chat:

  1. Generar un JWT válido desde la carga de JSON. Más información: setAuthTokenProvider

  2. Los métodos de chat activo deben ser invocados después de activar el evento lcw:ready event. Puede escuchar este evento agregando su propio agente de escucha del evento en el objeto de la ventana.

  3. Después de que se active el evento lcw:ready, registre un proveedor de símbolos de autenticación con chat activo mediante el uso de setAuthTokenProvider.

    Nota

    Para evitar el tiempo de espera, la función authTokenProvider en el método setAuthTokenProvider debe responder en 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);
});

Consulte también

setAuthTokenProvider
getAuthTokenProvider
removeAuthTokenProvider
Referencia de las API de JavaScript de SDK de chat activo
Enviar contexto personalizado