다음을 통해 공유


인증 토큰 보내기

고객이 채팅을 시작할 때 고객을 인증하려면 인증 토큰을 Customer Service용 옴니채널에 전달합니다. 이 토큰은 도메인에서 로그인한 고객의 유효성을 검사하고 정의된 컨텍스트 변수를 기반으로 정보를 추출하는 데 사용됩니다. 사용자 지정 인증은 선택 사항이며 채팅 위젯이 Power Apps 포털 외부에서 호스팅되는 경우에만 관련이 있습니다.

중요합니다

  • JWT(JSON 웹 토큰)의 페이로드에서 키에 제공된 lwicontexts 값은 직렬화된 사용자 지정 컨텍스트여야 합니다.
  • 사용자 지정 컨텍스트는 키/값 쌍의 컬렉션입니다. 모든 키에 대해 기본 값만 허용됩니다.
  • 사용자 지정 컨텍스트의 키는 Customer Service용 옴니채널의 연결된 작업 스트림에 대해 생성된 컨텍스트 변수와 일치해야 합니다.
  • 인증 토큰 공급자는 새 채팅을 시작할 때 라이브 채팅 위젯에 의해 호출됩니다.

인증 토큰 공급자와 관련된 SDK는 위젯에 대해 인증이 활성화된 경우에만 적용할 수 있습니다. 위젯에 대한 인증을 활성화하려면 채팅 인증 설정 만들기를 참조하세요.

채팅을 시작할 때 인증 토큰을 보내려면 다음 단계를 따르세요.

  1. JSON 페이로드에서 유효한 JWT를 생성합니다. 추가 정보: setAuthTokenProvider

  2. 라이브 채팅 메서드는 lcw:ready 이벤트 가 발생한 후에 호출해야 합니다. window 개체에 고유한 이벤트 수신기를 추가하여 이 이벤트를 수신할 수 있습니다.

  3. 이벤트가 lcw:ready 발생한 후 setAuthTokenProvider 메서드를 사용하여 라이브 채팅에 인증 토큰 공급자를 등록합니다.

    비고

    시간 초과를 방지하려면 setAuthTokenProvider 메서드의 authTokenProvider 함수가 10초 이내에 응답해야 합니다.

  4. startChat 메서드를 사용하여 채팅을 시작합니다.

샘플 코드

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
getAuthToken공급자
removeAuthTokenProvider
라이브 채팅 SDK JavaScript API 참조
사용자 지정 컨텍스트 보내기