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获取的。
若服务器无法连通该地址,将无法成功获取上次登录信息。但是对日志记录没有影响。