本文將介紹產品支援的單點登入API。注:我們提供帆軟單點相關的官方API,只解決官方API呼叫相關的問題。若使用者在實際操作過程中,出現非API之外的錯誤,請聯絡使用者公司的技術人員進行排查解決。
需要將帳號及密碼等資訊放在 url 後面進行登入驗證,配合 iframe 或者 ajax 可實現前臺的跨域單點登入行為。只需要在使用者的登入頁面加上該API的呼叫,後臺無需進行適配。需要使用者系統的帳號和密碼與帆軟平台帳號密碼相同。
FineReport 報表系統實現前臺單點登入有 2 種方式:iframe 方式、Ajax 方式。
不論哪一種登入方式,FineReport 報表系統都為使用者提供了統一的API,API如下所示:
注:該API為 get 請求。
http://localhost:8080/webroot/decision/login/cross/domain?fine_username=XX&fine_password=XX&validity=-2&callback=
參數說明如下表所示:
值为-2:
表示保持登入,保持登入就是 14 天的時間
值为非-2:
非保持登入,時長跟隨:管理系統>系統管理>登入>登入逾時時間
注:單點登入時保持登入,將參數 validity 的值改為 -2
在瀏覽器中輸入 URL :http://localhost:37799/webroot/decision/login/cross/domain?validity=-1&fine_username=帳號&fine_password=密碼,如果傳回 success 代表單點API呼叫成功,如圖所示:
其他說明如下所示:
該API不僅可用來做單點登入,也可用作自訂登入介面。更多API內容請參考:決策平台線上API文檔
需在平台關閉名為「內容嗅探攻擊防護」的按鈕,如果是內嵌的 iframe ,還需要關閉「點選劫持攻擊防護」按鈕。按鈕介紹請參見:安全防護
登入傳回的 token 儲存在 cookie ,確定瀏覽器沒有禁用 token ,同域的 OA 或者其他系統不能把 cookie 設定為HttpOnly。
由於使用者資訊是在 url 上的,可能出現 URL 字元,建議使用 encodeURIComponent 進行一次編碼。編碼轉換詳情請參見:編碼轉換
對於部分 IE 瀏覽器,需要將目標地點新增到受信任列表中。
iframe 方式和 Ajax 方式兩種登入方式均可實現單點登入的跨域,但 Ajax 可以實現非同步的單點登入,並且可對報表系統驗證的結果進行處理,如登入逾時;但是 iframe 不可以非同步處理,並且在進行報表驗證的時候,無法對驗證的結果進行處理。