顧客がチャットを開始したときに顧客を認証するには、認証トークンを Customer Service 用オムニチャネルに渡します。 このトークンは、ドメインからサインインしている顧客を検証し、定義されたコンテキスト変数に基づいて情報を抽出するために使用されます。 カスタム認証はオプションであり、チャット ウィジェットが Power Apps ポータルの外部でホストされている場合にのみ関連します。
Important
- JSON Web トークン (JWT) のペイロードでは、
lwicontextsキーに指定された値は、シリアル化されたカスタム コンテキストである必要があります。 - カスタムコンテキストは、キーと値のペアのコレクションです。 どのキーでもプリミティブ値のみが許可されます。
- カスタム コンテキストのキーは、Customer Service 用オムニチャネルの関連付けられた作業ストリームに対して作成されたコンテキスト変数に対応している必要があります。
- 認証トークンプロバイダーは、新しいチャットを開始するときにライブチャットウィジェットによって呼び出されます。
認証トークン・プロバイダーに関連するSDKは、ウィジェットで認証が有効になっている場合にのみ適用できます。 ウィジェットの認証を有効にするには、「 チャット認証設定の作成」を参照してください。
チャットを開始するときに認証トークンを送信するには、次の手順に従います。
JSON ペイロードから有効な JWT を生成します。 詳細: setAuthTokenProvider
ライブ チャット メソッドは、 lcw:ready イベント が発生した後に呼び出す必要があります。 このイベントをリッスンするには、ウィンドウオブジェクトに独自のイベントリスナーを追加します。
lcw:readyイベントが発生したら、setAuthTokenProvider メソッドを使用して、認証トークン プロバイダーをライブ チャットに登録します。注
タイムアウトを回避するには、setAuthTokenProviderメソッドのauthTokenProvider関数が10秒以内に応答する必要があります。
サンプル コード
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プロバイダ
getAuthTokenプロバイダ
removeAuthTokenProvider
ライブチャットSDK JavaScript APIリファレンス
カスタム コンテキストを送信する