1. 概述
本文介紹單點登錄中一些報錯及解決方案。
2. 示例
2.1 控制台顯示登錄成功但平台仍需登錄
問題描述:
在 IE 浏覽器下打開控制台顯示單點登錄成功,但是訪問決策系統時依舊會提示需要登錄,如下圖所示:
原因分析:
IE 隐私等級過高,這樣會導緻它發送單點登錄請求後,平台返回的 cookie 寫不進去,而其他浏覽器是默許的。
解決方案:
将 IE 隐私等級調整到低或以下。
2.2 特殊密碼單點登錄失敗
問題描述:
用戶密碼包含特殊字符,例如hgyusdre+CVsdej+HU09Y6y==,單點登錄失效。但如果在登錄頁輸入賬号密碼,登錄成功。
原因分析:
當密碼存在特殊字符,通過單點登錄接口直接訪問會失敗,需要對密碼進行轉碼。
解決方案:
1)打開浏覽器控制台,以谷歌浏覽器爲例,在控制台中輸入encodeURIComponent("密碼"),可将密碼進行轉碼。如下圖所示:
2)單點登錄接口使用轉碼的密碼進行訪問。
2.3 IE 浏覽器中單點登錄失敗
問題描述:
用戶在 IE 浏覽器上單點登錄失敗,但開啓 IE 浏覽器的調試模式又可以正常單點登陸。
原因分析:
單點登錄代碼中使用console.log()打印 debug 信息,在 IE 浏覽器中該代碼是默認不執行的,需要在 F12 打開調試工具才有效。
解決方案:
把打印日志的代碼屏蔽掉即可正常登錄。如下圖所示:
2.4 内網環境下單點登錄失效
問題描述:
内網環境下,單點登錄失敗。
原因分析:
單點登錄代碼中,若引用了 JS 文件,内網環境下是無法生效的。如下圖所示:
解決方案:
下載 JS 文件到本地并修改對應的路徑即可。以 Ajax 跨域單點登錄 爲例:
1)訪問右側鏈接: 各版本 jquery下載 ,下載代碼中對應的 jquery 文件。
2)将所下載文件中的jquery.min.js文件放到%FR_HOME%\webapps\webroot下,如下圖所示:
3)修改 HTML 文件中jquery.min.js文件的路徑,如下圖所示: