1. 概述
1.1 版本
報表伺服器版本 |
---|
11.0 |
1.2 功能簡介
為安全起見,在數據決策系統的「登入」Tab 頁下,開啟「上次登入資訊提示」,開啟後每次登入時會提示上一次登入的時間、IP 位址、地點,這樣會即時發現登入異常等資訊。
2. 操作步驟
2.1 開啟上次登入資訊提示按鈕
管理者登入數據決策系統,點選「管理系統>系統管理>登入」,開啟「上次登入資訊提示」按鈕,如下圖所示:
2.2 效果預覽
2.2.1 PC 端
使用者登入數據決策系統時,將提示上次登入資訊,如下圖所示:
2.2.2 行動端
以 App 效果為例,如下圖所示:
3. 自訂登入網頁實現上次登入資訊提示功能
登入資訊的獲取是在登入頁獲取的。
注:使用addLoginInfo(function ())儲存登入資訊。
3.1 代碼簡介
1)獲取當前用戶端 IP 和城市資訊:
// 獲取當前用戶端ip和城市資訊,可以自行更換來源
function getIpInfo(cb) {
$.ajax({
url: "https://cloud.fanruan.com/api/query/ip?timeout=10000",
async: true,
dataType: "JSONP",
}).done(function (data) {
cb(data);
});
}
2) 新增登入資訊:
function addLoginInfo(cb) {
getIpInfo(function (ipInfo) {
var info = {
time: BI.print(BI.getDate(), "%Y-%X-%d %H:%M:%S"), // 登入時間,yyyy-MM-dd HH:mm:ss
ip: ipInfo.ip || "",
city: ipInfo.provincecity || "",
};
$.ajax({
url: "/webroot/decision/login/info",
contentType: "application/json",
type: "POST",
dataType: "json",
headers: {
Authorization: "Bearer " BI.Cache.getCookie("fine_auth_token"),
},
data: JSON.stringify(info),
success: function (res) {
cb();
},
error: function () {
alert("逾時或伺服器其他錯誤");
}
});
})
}
3.2 範例
參考 自訂登入介面 設定自訂登入網頁,HTML 檔案為:test.html
若需要在自訂登入網頁中新增獲取上次登入資訊提示的功能,代碼修改為:login.html
注:範例使用了內建 FineUI,如果不使用 FineUI 可以直接使用 jQuery 或者原生實現 Ajax 請求,自行實現新增和獲取 Cookie 的方法,自行處理當前時間。
4. 注意事項
4.1 上次登入資訊顯示不準確
問題描述:
登入數據決策系統時,上次登入資訊中資訊不準確。
原因分析:
登入資訊的獲取是在登入頁獲取的,若使用者跨越 登入頁 直接進入數據決策系統,本次的登入資訊將不會記入上次登入資訊。
例如:
在登入頁勾選保持登入狀態,進入數據決策系統(已開啟上次登入資訊提示按鈕),上次登入資訊顯示為時間 1 ,徹底關閉瀏覽器;
不經過登入頁,再次進入數據決策系統,此時登入時間為時間 2 ,但上次登入資訊仍然為時間 1 。
4.2 不顯示上次登入資訊
問題描述:
開啟了「上次登入資訊提示」按鈕,但是登入時不顯示上次登入資訊。
原因分析:
登入資訊中的IP和城市,是透過帆軟雲中心https://cloud.fanruan.com/api/query/ip?timeout=10000獲取的。
若伺服器無法連通該位址,將無法成功獲取上次登入資訊。但是對日誌記錄沒有影響。