php----(简1)后台强制用户退出

来源:互联网 发布:手机淘宝社区在哪 编辑:程序博客网 时间:2024/05/16 23:58

检测用户登录状态:(思想):
一式:用户的登陆信息记录在一个表中,用户登陆表增加一行,用户退出,删除那一行

二式:登录标识:登录成功后添加登录标识到数据表中,当执行强制退出就设置为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 框架

0 0