Compartilhar via


Enviar token de autenticação

Para autenticar um cliente quando ele iniciar um chat, passe um token de autenticação para o Omnicanal para Customer Service. Esse token é usado para validar um cliente conectado de um domínio e para extrair informações com base nas variáveis de contexto definidas. A autenticação personalizada é opcional e é relevante somente quando o widget de chat é hospedado fora dos portais do Power Apps.

Importante

  • Na carga do JSON Web Token (JWT), o valor fornecido para a lwicontexts chave deve ser o contexto personalizado serializado.
  • O contexto personalizado é uma coleção de pares chave/valor. Somente valores primitivos são permitidos para qualquer chave.
  • As chaves de contexto personalizado devem corresponder às variáveis de contexto criadas para o fluxo de trabalho associado no Omnicanal para Customer Service.
  • O provedor de token de autenticação seria invocado pelo widget de chat ao vivo ao iniciar um novo chat.

Os SDKs relacionados ao provedor de token de autenticação serão aplicáveis somente se a autenticação estiver ativada para o widget. Para ativar a autenticação para seu widget, consulte Criar configurações de autenticação de chat.

Siga estas etapas para enviar um token de autenticação ao iniciar um bate-papo:

  1. Gere um JWT válido a partir da carga JSON. Mais informações: setAuthTokenProvider

  2. Os métodos de chat ao vivo devem ser invocados depois que o evento lcw:ready for gerado. Você pode escutar esse evento adicionando seu próprio ouvinte de eventos no objeto window.

  3. Depois que o lcw:ready evento for gerado, registre um provedor de token de autenticação com chat ao vivo usando o método setAuthTokenProvider .

    Observação

    Para evitar o tempo limite, a função authTokenProvider no método setAuthTokenProvider deve responder em 10 segundos.

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

Código de exemplo

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 da API JavaScript do SDK do chat ao vivo
Enviar contexto personalizado