php----(简1)后台强制用户退出
检测用户登录状态:(思想):
一式:用户的登陆信息记录在一个表中,用户登陆表增加一行,用户退出,删除那一行
二式:登录标识:登录成功后添加登录标识到数据表中,当执行强制退出就设置为0; 在基类(刷新)中进行检测:session(login_token), db(login_token),
代码:采用第二种:token
// 步骤:
// 1. 用户登录后:获取标识:
$login_token = uniqid();
// 2. 将标识存入session
$_SESSION["admin"]["login_token"] = $login_token ;
// 3. 数据表中(更新)
$model->updateManagerById($login_token, $mid);
// 4. 用户登录成功后,
// 前端操作:点击按钮,设置登录标识:0
$(function(){
// 点击强制退出
$(".exit").on("click", function () {
// 获取manager id
var manager_id = $(this).attr("data-id");
var manager_name = $(this).attr("data-name");
var d = $.dialog({
type: "warning",
message: "你确认要强制退出管理员:" + manager_name + " ?",
buttons: [
{
text: "确认", type: "primary", callback: function () {
// 执行按manager_id 强制退出
exitManagerById(manager_id);
}
},
{
text: "取消", type: "cancel", callback: function () {
d.close();
return false;
}
}
]
});
});
// 按manager_id 强制退出管理员
function exitManagerById(manager_id) {
$.ajax("/manager/exit", {
type: "POST",
data: {manager_id: manager_id},
dataType: "json",
success: function (data) {
console.log(data);
if (data.code == 1) {
$.dialog({
type: "success",
delay: 2000,
delayShow: 0,
message: data.message,
delayCallback: function () {
location.href = data.data.href
}
})
} else {
$.dialog({
type: "warning",
delay: 2000,
delayShow: 0,
message: data.message
})
}
}
})
}
});
// 5. 后端:思想:用户的每个操作都会调用的类(基类)里添加一个方法,并调用(刷新)
// 调用
function __construct(){
// 强制退出
self::checkLoginToken();
}
/**
* 检测登录标识状态:session 中的login_token是否一致
* 1. 根据manager_id 获取login_token
* 2. 根据从数据库查出的login_token 与sessin 中的login_token 进行对比。除超级管理员
*/
public function checkLoginToken(){
// 1. 根据manager_id 获取login_token
$model = ModelFactory::M("ManagerModel");
$token = $model->getManagerById($_SESSION["admin"]["manager_id"])["login_token"];
// 2. 根据从数据库查出的login_token 与sessin 中的login_token 进行对比
if($token != $_SESSION["admin"]["login_token"]){
unset($_SESSION["admin"]);
header("Location:/manager/login");
}
}
注:[dialog] 是一个jquery 框架
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
- 上一篇: HTML5----字体rem,px,em,设置
- 下一篇: JS----简单表单密码强度检验