最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php權(quán)限調(diào)整強(qiáng)制用戶退出的解決步驟

 更新時(shí)間:2023年09月12日 11:39:54   作者:漏刻有時(shí)  
這篇文章主要介紹了php權(quán)限調(diào)整強(qiáng)制用戶退出的解決步驟,當(dāng)用戶登錄時(shí),將用戶的登錄狀態(tài)和其他相關(guān)信息存儲(chǔ)在服務(wù)器端,本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下

php權(quán)限調(diào)整強(qiáng)制用戶退出的解決方案

要強(qiáng)制用戶重新登錄,你可以采取以下步驟:

  • 當(dāng)用戶登錄時(shí),將用戶的登錄狀態(tài)和其他相關(guān)信息存儲(chǔ)在服務(wù)器端。例如,你可以將用戶ID、用戶名或其他標(biāo)識(shí)符存儲(chǔ)在服務(wù)器的會(huì)話(session)中。
  • 當(dāng)管理員修改用戶的某些字段時(shí),確保在服務(wù)器端更新用戶的登錄狀態(tài)或其他相關(guān)信息。這樣,用戶的本地cookie與服務(wù)器上的信息就會(huì)保持一致。
  • 在每次用戶請(qǐng)求頁面時(shí),驗(yàn)證用戶的登錄狀態(tài)。可以通過在服務(wù)器端檢查用戶的cookie或會(huì)話信息來完成驗(yàn)證。
  • 如果管理員修改了用戶的某些字段,導(dǎo)致用戶的本地cookie與服務(wù)器上的信息不一致,你可以在服務(wù)器端檢測(cè)到這種不一致性。
  • 當(dāng)檢測(cè)到不一致性時(shí),服務(wù)器端可以執(zhí)行適當(dāng)?shù)牟僮?,如清除用戶的?huì)話信息或設(shè)置一個(gè)標(biāo)記,指示用戶需要重新登錄。
  • 當(dāng)用戶再次訪問頁面時(shí),服務(wù)器端會(huì)檢測(cè)到需要重新登錄的標(biāo)記,并將用戶重定向到登錄頁面或顯示適當(dāng)?shù)奶崾?,要求用戶重新登錄?/li>

請(qǐng)注意,上述步驟是一種常見的方法,但具體的實(shí)現(xiàn)方式可能因你使用的框架或庫而有所不同。你可以根據(jù)自己的具體情況和需求進(jìn)行調(diào)整和修改。

function checkOfficeAuth()
{
    //1.判斷是否已登錄;
    if (empty($_COOKIE["db_office_id"])) {
        redirect('index.php');
    }
    //2.判斷子賬號(hào)的登錄權(quán)限變化時(shí),自動(dòng)退出 By woodCutter 2023-09-10
    global $db;
    dbc();
    $user_id = AuthCode($_COOKIE['db_perm_id'], "DECODE", "LOCKDATAV", "");
    $row_user = $db->fetch('user', 'user_id,user_perm', array('user_id' => trim($user_id)), ' user_id DESC');
    if ($_COOKIE['db_office_perm'] != $row_user["user_perm"]) {
        redirect('?m=Login&a=loginDeal&act=LoginOut');
    }
}

php(簡(jiǎn)1)后臺(tái)強(qiáng)制用戶退出

檢測(cè)用戶登錄狀態(tài):(思想):

一式:用戶的登陸信息記錄在一個(gè)表中,用戶登陸表增加一行,用戶退出,刪除那一行

二式:登錄標(biāo)識(shí):登錄成功后添加登錄標(biāo)識(shí)到數(shù)據(jù)表中,當(dāng)執(zhí)行強(qiáng)制退出就設(shè)置為0; 在基類(刷新)中進(jìn)行檢測(cè):session(login_token), db(login_token),

代碼:采用第二種:token

// 步驟:
// 1. 用戶登錄后:獲取標(biāo)識(shí):
$login_token = uniqid();
// 2. 將標(biāo)識(shí)存入session
$_SESSION['admin']['login_token'] = $login_token ;
// 3. 數(shù)據(jù)表中(更新)
$model->updateManagerById($login_token, $mid);
// 4. 用戶登錄成功后,
// 前端操作:點(diǎn)擊按鈕,設(shè)置登錄標(biāo)識(shí):0
$(function(){
    // 點(diǎn)擊強(qiáng)制退出
    $('.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: '你確認(rèn)要強(qiáng)制退出管理員:' + manager_name + ' ?',
            buttons: [
                {
                    text: '確認(rèn)', type: 'primary', callback: function () {
                    // 執(zhí)行按manager_id 強(qiáng)制退出
                    exitManagerById(manager_id);
                }
                },
                {
                    text: '取消', type: 'cancel', callback: function () {
                    d.close();
                    return false;
                }
                }
            ]
        });
    });
    // 按manager_id 強(qiáng)制退出管理員
    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. 后端:思想:用戶的每個(gè)操作都會(huì)調(diào)用的類(基類)里添加一個(gè)方法,并調(diào)用(刷新)
// 調(diào)用
function __construct(){
        // 強(qiáng)制退出
        self::checkLoginToken();
}
 /**
  * 檢測(cè)登錄標(biāo)識(shí)狀態(tài):session 中的login_token是否一致
  * 1. 根據(jù)manager_id 獲取login_token
  * 2. 根據(jù)從數(shù)據(jù)庫查出的login_token 與sessin 中的login_token 進(jìn)行對(duì)比。除超級(jí)管理員
  */
 public function checkLoginToken(){
     // 1. 根據(jù)manager_id 獲取login_token
     $model = ModelFactory::M('ManagerModel');
     $token = $model->getManagerById($_SESSION['admin']['manager_id'])['login_token'];
     // 2. 根據(jù)從數(shù)據(jù)庫查出的login_token 與sessin 中的login_token 進(jìn)行對(duì)比
     if($token != $_SESSION['admin']['login_token']){
         unset($_SESSION['admin']);
         header("Location:/manager/login");
     }
 }

注:[dialog] 是一個(gè)jquery 框架

到此這篇關(guān)于php權(quán)限調(diào)整強(qiáng)制用戶退出的解決方案的文章就介紹到這了,更多相關(guān)php強(qiáng)制用戶退出內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法

    PHP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法

    下面小編就為大家?guī)硪黄狿HP遞歸遍歷指定文件夾內(nèi)的文件實(shí)現(xiàn)方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • 淺談PHP匿名函數(shù)和閉包

    淺談PHP匿名函數(shù)和閉包

    這篇文章主要介紹了PHP匿名函數(shù)和閉包,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • php寫的AES加密解密類分享

    php寫的AES加密解密類分享

    這篇文章主要介紹了php寫的AES加密解密類,實(shí)際是為YII框架寫的,不在YII框架時(shí)只需替換其中的兩句代碼即可使用,需要的朋友可以參考下
    2014-06-06
  • YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法

    YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法

    這篇文章主要介紹了YII模塊實(shí)現(xiàn)綁定二級(jí)域名的方法,需要的朋友可以參考下
    2014-07-07
  • Laravel中錯(cuò)誤與異常處理的用法示例

    Laravel中錯(cuò)誤與異常處理的用法示例

    異常拋出在開發(fā)中錯(cuò)誤處理是非常重要的,下面這篇文章主要給大家介紹了關(guān)于Laravel中錯(cuò)誤與異常處理用法的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧
    2018-09-09
  • Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法

    Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法

    這篇文章主要介紹了Yii2基于Ajax自動(dòng)獲取表單數(shù)據(jù)的方法,涉及Yii結(jié)合ajax調(diào)用鼠標(biāo)事件動(dòng)態(tài)查詢表單的相關(guān)技巧,需要的朋友可以參考下
    2016-08-08
  • ThinkPHP多語言支持與多模板支持概述

    ThinkPHP多語言支持與多模板支持概述

    這篇文章主要介紹了ThinkPHP多語言支持與多模板支持,是ThinkPHP非常重要的技巧,需要的朋友可以參考下
    2014-08-08
  • Laravel框架實(shí)現(xiàn)點(diǎn)播上傳阿里云功能

    Laravel框架實(shí)現(xiàn)點(diǎn)播上傳阿里云功能

    這篇文章主要介紹了Laravel框架實(shí)現(xiàn)點(diǎn)播上傳阿里云功能,本文給大家分享一段完整的實(shí)例代碼,代碼簡(jiǎn)單易懂,需要的朋友可以參考下
    2021-09-09
  • ThinkPHP行為擴(kuò)展Behavior應(yīng)用實(shí)例詳解

    ThinkPHP行為擴(kuò)展Behavior應(yīng)用實(shí)例詳解

    這篇文章主要介紹了ThinkPHP行為擴(kuò)展Behavior應(yīng)用實(shí)例,對(duì)于讀者深入了解ThinkPHP框架程序設(shè)計(jì)大有幫助,需要的朋友可以參考下
    2014-07-07
  • ThinkPHP框架整合微信支付之Native 掃碼支付模式二圖文詳解

    ThinkPHP框架整合微信支付之Native 掃碼支付模式二圖文詳解

    這篇文章主要介紹了ThinkPHP框架整合微信支付之Native 掃碼支付模式,結(jié)合圖文形式詳細(xì)分析了thinkPHP整合微信掃碼支付功能的具體步驟與相關(guān)操作技巧,以及與模式一的區(qū)別,需要的朋友可以參考下
    2019-04-04

最新評(píng)論

安庆市| 沁水县| 罗甸县| 宜州市| 湖口县| 义马市| 商都县| 禄丰县| 宜春市| 兴安盟| 宁阳县| 定结县| 宁波市| 定兴县| 建宁县| 东源县| 崇信县| 泾阳县| 肃南| 汪清县| 子长县| 呼伦贝尔市| 永顺县| 德钦县| 关岭| 怀柔区| 苏尼特左旗| 武冈市| 津市市| 北海市| 新安县| 德昌县| 合山市| 万州区| 尉犁县| 青海省| 中阳县| 石林| 沾益县| 紫阳县| 兴宁市|