php權(quán)限調(diào)整強(qiáng)制用戶退出的解決步驟
php權(quán)限調(diào)整強(qiáng)制用戶退出的解決方案
要強(qiáng)制用戶重新登錄,你可以采取以下步驟:
- 當(dāng)用戶登錄時,將用戶的登錄狀態(tài)和其他相關(guān)信息存儲在服務(wù)器端。例如,你可以將用戶ID、用戶名或其他標(biāo)識符存儲在服務(wù)器的會話(session)中。
- 當(dāng)管理員修改用戶的某些字段時,確保在服務(wù)器端更新用戶的登錄狀態(tài)或其他相關(guān)信息。這樣,用戶的本地cookie與服務(wù)器上的信息就會保持一致。
- 在每次用戶請求頁面時,驗證用戶的登錄狀態(tài)??梢酝ㄟ^在服務(wù)器端檢查用戶的cookie或會話信息來完成驗證。
- 如果管理員修改了用戶的某些字段,導(dǎo)致用戶的本地cookie與服務(wù)器上的信息不一致,你可以在服務(wù)器端檢測到這種不一致性。
- 當(dāng)檢測到不一致性時,服務(wù)器端可以執(zhí)行適當(dāng)?shù)牟僮?,如清除用戶的會話信息或設(shè)置一個標(biāo)記,指示用戶需要重新登錄。
- 當(dāng)用戶再次訪問頁面時,服務(wù)器端會檢測到需要重新登錄的標(biāo)記,并將用戶重定向到登錄頁面或顯示適當(dāng)?shù)奶崾?,要求用戶重新登錄?/li>
請注意,上述步驟是一種常見的方法,但具體的實現(xiàn)方式可能因你使用的框架或庫而有所不同。你可以根據(jù)自己的具體情況和需求進(jìn)行調(diào)整和修改。
function checkOfficeAuth()
{
//1.判斷是否已登錄;
if (empty($_COOKIE["db_office_id"])) {
redirect('index.php');
}
//2.判斷子賬號的登錄權(quán)限變化時,自動退出 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(簡1)后臺強(qiáng)制用戶退出
檢測用戶登錄狀態(tài):(思想):
一式:用戶的登陸信息記錄在一個表中,用戶登陸表增加一行,用戶退出,刪除那一行
二式:登錄標(biāo)識:登錄成功后添加登錄標(biāo)識到數(shù)據(jù)表中,當(dāng)執(zhí)行強(qiáng)制退出就設(shè)置為0; 在基類(刷新)中進(jìn)行檢測:session(login_token), db(login_token),
代碼:采用第二種:token
// 步驟:
// 1. 用戶登錄后:獲取標(biāo)識:
$login_token = uniqid();
// 2. 將標(biāo)識存入session
$_SESSION['admin']['login_token'] = $login_token ;
// 3. 數(shù)據(jù)表中(更新)
$model->updateManagerById($login_token, $mid);
// 4. 用戶登錄成功后,
// 前端操作:點(diǎn)擊按鈕,設(shè)置登錄標(biāo)識: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. 后端:思想:用戶的每個操作都會調(diào)用的類(基類)里添加一個方法,并調(diào)用(刷新)
// 調(diào)用
function __construct(){
// 強(qiáng)制退出
self::checkLoginToken();
}
/**
* 檢測登錄標(biāo)識狀態(tài):session 中的login_token是否一致
* 1. 根據(jù)manager_id 獲取login_token
* 2. 根據(jù)從數(shù)據(jù)庫查出的login_token 與sessin 中的login_token 進(jìn)行對比。除超級管理員
*/
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)行對比
if($token != $_SESSION['admin']['login_token']){
unset($_SESSION['admin']);
header("Location:/manager/login");
}
}注:[dialog] 是一個jquery 框架
到此這篇關(guān)于php權(quán)限調(diào)整強(qiáng)制用戶退出的解決方案的文章就介紹到這了,更多相關(guān)php強(qiáng)制用戶退出內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
php如何把表單內(nèi)容提交到數(shù)據(jù)庫
這篇文章主要介紹了php如何吧表單內(nèi)容提交到數(shù)據(jù)庫,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2019-07-07
PHP實現(xiàn)生成透明背景的PNG縮略圖函數(shù)分享
這篇文章主要介紹了PHP實現(xiàn)生成透明背景的PNG縮略圖函數(shù)分享,需要的朋友可以參考下2014-07-07
PHP調(diào)用.NET的WebService 簡單實例
這篇文章主要介紹了使用PHP調(diào)用.NET的WebService的一個簡單實例,十分的簡單,有需要的小伙伴可以自己擴(kuò)展下,如有疑問請留言。2015-03-03
wordpress網(wǎng)站轉(zhuǎn)移到本地運(yùn)行測試的方法
這篇文章主要為大家詳細(xì)介紹了wordpress網(wǎng)站轉(zhuǎn)移到本地運(yùn)行測試的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-03-03
用 Composer構(gòu)建自己的 PHP 框架之使用 ORM
經(jīng)過前三篇文章 基礎(chǔ)準(zhǔn)備 、 構(gòu)建路由 和 設(shè)計 MVC ,我們已經(jīng)得到了一個結(jié)構(gòu)比較完整的 MVC 架構(gòu)的 PHP 微框架,但是距離一個真正能夠上手使用的框架還差一樣?xùn)|西: 數(shù)據(jù)庫封裝 ,本篇就將講述如何集成一個 ORM Composer 包2014-10-10

