고객이 채팅을 시작할 때 고객을 인증하려면 인증 토큰을 Customer Service용 옴니채널에 전달합니다. 이 토큰은 도메인에서 로그인한 고객의 유효성을 검사하고 정의된 컨텍스트 변수를 기반으로 정보를 추출하는 데 사용됩니다. 사용자 지정 인증은 선택 사항이며 채팅 위젯이 Power Apps 포털 외부에서 호스팅되는 경우에만 관련이 있습니다.
중요합니다
- JWT(JSON 웹 토큰)의 페이로드에서 키에 제공된
lwicontexts값은 직렬화된 사용자 지정 컨텍스트여야 합니다. - 사용자 지정 컨텍스트는 키/값 쌍의 컬렉션입니다. 모든 키에 대해 기본 값만 허용됩니다.
- 사용자 지정 컨텍스트의 키는 Customer Service용 옴니채널의 연결된 작업 스트림에 대해 생성된 컨텍스트 변수와 일치해야 합니다.
- 인증 토큰 공급자는 새 채팅을 시작할 때 라이브 채팅 위젯에 의해 호출됩니다.
인증 토큰 공급자와 관련된 SDK는 위젯에 대해 인증이 활성화된 경우에만 적용할 수 있습니다. 위젯에 대한 인증을 활성화하려면 채팅 인증 설정 만들기를 참조하세요.
채팅을 시작할 때 인증 토큰을 보내려면 다음 단계를 따르세요.
JSON 페이로드에서 유효한 JWT를 생성합니다. 추가 정보: setAuthTokenProvider
라이브 채팅 메서드는 lcw:ready 이벤트 가 발생한 후에 호출해야 합니다. window 개체에 고유한 이벤트 수신기를 추가하여 이 이벤트를 수신할 수 있습니다.
이벤트가
lcw:ready발생한 후 setAuthTokenProvider 메서드를 사용하여 라이브 채팅에 인증 토큰 공급자를 등록합니다.비고
시간 초과를 방지하려면 setAuthTokenProvider 메서드의 authTokenProvider 함수가 10초 이내에 응답해야 합니다.
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 참조
사용자 지정 컨텍스트 보내기