1. 概述
本文将介紹産品支持的單點登錄接口。
注:我們提供帆軟單點相關的官方接口,只解決官方接口調用相關的問題。若用戶在實際操作過程中,出現非接口之外的錯誤,請聯系用戶公司的技術人員進行排查解決。
2. 前台單點登錄
需要将用戶名及密碼等信息放在 url 後面進行登錄驗證,配合 iframe 或者 ajax 可實現前台的跨域單點登錄行爲。只需要在用戶的登錄頁面加上該接口的調用,後台無需進行适配。需要用戶系統的賬号和密碼與帆軟平台賬号密碼相同。
2.1 接口介紹
FineReport 報表系統實現前台單點登錄有 2 種方式:iframe 方式、Ajax 方式。
不論哪一種登錄方式,FineReport 報表系統都爲用戶提供了統一的接口,接口如下所示:
注:該接口爲 get 請求。
http://localhost:8080/webroot/decision/login/cross/domain?fine_username=XX&fine_password=XX&validity=
-2&callback=
參數說明如下表所示:
參數 | 是否必須 | 備注 |
---|---|---|
fine_username | 是 | 用戶名 |
fine_password | 是 | 密碼 |
encrypted | 否 | 密碼是否是加密後的密文 值爲true: 必須對用戶輸入的密碼進行 AES 加密後才能正常使用接口 注:推薦不加密,無需在接口中使用該參數 |
validity | 是 | 值爲-2: 表示保持登錄,保持登錄就是 14 天的時間 值爲非-2: 非保持登錄,時長跟随:管理系統>系統管理>登錄>登錄超時時間 注:單點登錄時保持登錄,将參數 validity 的值改爲 -2 |
callback | 否 | - |
在浏覽器中輸入 URL :http://localhost:8075/webroot/decision/login/cross/domain?validity=-1&fine_username=賬号&fine_password=密碼,如果返回 success 代表單點接口調用成功,如圖所示:
2.2 其他說明
其他說明如下所示:
10.0 中關於用戶名和密碼的參數,全部統一爲 fine_username 和 fine_password 。
該接口不僅可用來做單點登錄,也可用作自定義登錄界面。更多接口内容請參考:決策平台在線接口文檔
需在平台關閉名爲「内容嗅探攻擊防護」的按鈕,如果是内嵌的 iframe ,還需要關閉「點擊劫持攻擊防護」按鈕。按鈕介紹請參見:安全防護
登錄返回的 token 存儲在 cookie ,确保浏覽器沒有禁用 cookie ,同域的 OA 或者其他系統不能把 cookie 設置爲HttpOnly。
由於用戶信息是在 url 上的,可能出現 URL 字符,建議使用 encodeURIComponent 進行一次編碼。編碼轉換詳情請參見:編碼轉換
對於部分 IE 浏覽器,需要将目标站點添加到受信任列表中。
2.3 Ajax 與 iframe 區别
iframe 方式和 Ajax 方式兩種登錄方式均可實現單點登錄的跨域,但 Ajax 可以實現異步的單點登錄,并且可對報表系統驗證的結果進行處理,如登錄超時;但是 iframe 不可以異步處理,并且在進行報表驗證的時候,無法對驗證的結果進行處理。