以聯絡人 Source ID 免登入對話
讓您網站上已登入的使用者帶著自己的使用者編號(Source ID)直接對話,不必再登入一次。平台會依此編號對應到一位聯絡人,未經您後端簽章的請求則無法冒用任何人的身分。
把 Web Chat 嵌入自家網站時,使用者往往已經在您的網站登入過。這個設定讓他們帶著您系統的使用者編號直接開始對話,不必再經過一次登入畫面;同時公開對話網址仍然擋掉匿名訪問。
這個編號在 MaiAgent 稱為 Source ID,後台畫面與嵌入腳本都用這個名稱。平台收到 Source ID 後,會對應到(或建立)一位聯絡人,該使用者的對話紀錄就掛在這位聯絡人身上。
一、這個設定解決什麼問題
在此設定之前,登入設定是二選一:
開啟登入設定:嵌入端明明已經驗證過身分,使用者仍被要求再登入一次。
關閉登入設定:公開對話網址任何人都能匿名使用。
開啟本設定後,兩者可以同時成立:帶著 Source ID 與有效簽章進來的使用者直接對話,沒帶的訪問一律導向登入頁。
二、開啟設定
設定位置:左側選單 「 客服對話 > 對話平台 」,選擇一個網站類型的對話平台,進入 「 登入設定 」 分頁。
1. 先選擇登入來源
本開關依附於登入設定,必須先在 「 登入來源 」 選定一種來源(MaiAgent/AD/Keycloak/LINE)。尚未選擇時開關無法點選,畫面會顯示 「 請先選擇登入來源 」。

2. 開啟開關
開啟 「 允許嵌入端以 Source ID 免登入對話 」。開啟後才會出現驗證方式、簽章密鑰與整合範例。

3. 選擇驗證方式
要求簽章驗證(建議)
嵌入端須附上由您後端計算的簽章,驗章通過才放行。只有持有密鑰的伺服器能代表使用者發起對話。
正式環境
僅憑 Source ID
不驗簽章,帶了 Source ID 就放行。
測試或內網封閉環境
選擇 「僅憑 Source ID」 時,Source ID 就等於通行證。若您的 Source ID 是 email、學號、員工編號等可猜測的值,他人可冒用該身分對話並讀取其歷史紀錄。需要身分保證的場景請使用簽章模式,或改用 AD/Keycloak/MaiAgent 登入。

4. 取得簽章密鑰
選擇簽章模式並儲存設定後,平台會產生一組簽章密鑰。在密鑰欄位可以:
點擊 「 顯示 」 檢視完整密鑰(預設遮罩)
點擊 「 複製 」 交給您的工程師
點擊 「 重新產生 」 換發新密鑰
密鑰請存放在您的伺服器環境變數,切勿寫入前端程式碼。重新產生後舊密鑰立即失效,您的後端必須同步更換,否則簽章一律驗不過。
5. 設定簽章有效期限
可選 1、5、15 分鐘,預設 5 分鐘。逾期或已使用過的簽章會被拒絕。

三、您的工程師如何串接
後台的 「 整合範例 」 區塊會帶入此對話平台的識別碼,可直接複製使用。完整的參數說明、驗證規則與疑難排解,請交給您的工程師參考Web Chat 嵌入與 SDK · 簽章驗證。
1. 後端計算簽章
簽章內容為 HMAC-SHA256(密鑰, "{對話平台識別碼}.{Source ID}.{時間戳}"),以 hex 字串傳遞。時間戳為 Unix 秒(UTC),由您的後端產生。
2. 前端帶入嵌入腳本
3. 串接注意事項
每次進場都要重新簽:同一組簽章只能成功使用一次,嵌入端不得快取簽章。
簽章要在後端算:密鑰一旦出現在前端程式碼就等於公開。
時鐘要準:系統允許 60 秒的時鐘偏差,時間戳超出此範圍會被拒絕。
對話平台識別碼要正確:簽章內含對話平台識別碼,以其他對話平台的識別碼計算的簽章不會通過。
四、行為對照
帶 Source ID + 有效簽章
直接對話,不出現登入畫面
帶 Source ID,簽章錯誤或逾期
拒絕
同一組簽章重複使用
第一次成功,第二次拒絕
未帶 Source ID(含直接開啟公開網址)
導向登入頁
驗證方式為「僅憑 Source ID」+ 帶 Source ID
直接對話,不驗簽章
本開關關閉
維持原本的登入設定行為
五、驗章失敗紀錄
串接不順時,在設定區塊點擊 「 查看驗章失敗紀錄 」 即可看到最近的失敗事件,供您的工程師自助排查。紀錄不含密鑰與完整簽章。

簽章逾期
伺服器時鐘偏移,或嵌入端快取了簽章
時間戳超出未來容許範圍
伺服器時鐘快了超過 60 秒
簽章不符(密鑰可能不一致)
後端用的密鑰與後台不同,或簽章字串組法有誤
缺少時間戳或簽章
嵌入端沒帶 ts 或 sig
簽章已被使用
同一組簽章送了第二次
防重放快取無法使用
平台端暫時性狀況,系統採取拒絕而非放行
Source ID 對應到多位聯絡人
該對話平台存在同一 Source ID 的重複聯絡人資料
六、常見問題
最後更新於
這有幫助嗎?
