若要在客戶開始聊天時對其進行驗證,請將驗證權杖傳遞至 Customer Service 全通路。 此權杖可用來驗證從網域登入的客戶,並根據定義的內容變數擷取資訊。 自訂驗證是選擇性的,只有在聊天小工具裝載在 Power Apps 入口網站外部時才相關。
這很重要
- 在 JSON Web 權杖 (JWT) 的承載中,為金鑰提供的
lwicontexts值應該是序列化的自訂內容。 - 自訂內容是索引鍵/值組的集合。 任何索引鍵只允許基本值。
- 自訂內容的索引鍵必須對應於為 Customer Service 全通路中相關聯工作流建立的內容變數。
- 開始新聊天時,即時聊天小工具會叫用驗證權杖提供者。
只有在為小組件啟用驗證時,與驗證權杖提供者相關的 SDK 才適用。 若要啟用小工具的驗證,請參閱 建立聊天驗證設定。
請按照以下步驟在開始聊天時發送身份驗證令牌:
從 JSON 承載產生有效的 JWT。 其他資訊: setAuthTokenProvider
應該在引發 lcw:ready 事件 之後叫用即時聊天方法。 您可以在視窗物件上新增自己的事件接聽程式,以監聽此事件。
引發事件之後
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);
});
相關信息
setAuthToken提供者
getAuthTokenProvider
removeAuthTokenProvider
即時聊天SDK JavaScript API參考
發送自訂上下文