若要在客户开始聊天时对其进行身份验证,请将身份验证令牌传递给 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);
});
相关信息
setAuthTokenProvider
getAuthTokenProvider
removeAuthTokenProvider
实时聊天 SDK JavaScript API 参考
发送自定义上下文