thinkphp6如何在本地IP不變的情況下自動(dòng)登錄后臺

程序猿 2021-03-12 22:40:52 2115瀏覽 加載中

原理

第一次登錄的時(shí)候設(shè)置cookie,再次登錄的時(shí)候先獲取cookie進(jìn)行校驗(yàn),為了安全起見還要做一些簡單的加密。cookie在本地保存,容易泄漏,為了安全可以和本地IP做下綁定,這樣就算泄漏在其它電腦上也是登錄不了的,當(dāng)然在同一個(gè)局域網(wǎng)內(nèi)還是可以訪問的,同網(wǎng)中也沒有人黑你吧。

代碼

// 登錄成功后設(shè)置 cookie 
$ip = get_real_ip();    // 獲取客戶真實(shí)的IP,下面有介紹
$token = md5($pass . $ip); // $pass 為用戶的密碼,和真實(shí)的IP做一個(gè)簡單的MD5加密
cookie("username",$username,604800); // 7天
cookie("token",$token,3600*24*7); //7天

第二次登錄代碼

$username = cookie("username");
$token = cookie("token");
$ip = get_real_ip();  
$user = UserModel::where("username",$username)->find();
if ($user) {
    $pass = $user->pass;
    $t = md5(pass . $ip);
    if ($t == $token) {
        session("username",$username) // 記錄session登錄狀態(tài)
        $this->redirect("/admin",301); // 跳轉(zhuǎn)到后臺頁面
    }
}
// 其它邏輯自行腦補(bǔ)。

說明

get_real_ip()是自定義獲取真實(shí)IP的方法,點(diǎn)擊可以查看相應(yīng)代碼。

最后修改:2025-04-04 10:52:51

非特殊說明,本博所有文章均為博主原創(chuàng)。

国产免费久久受久久,人妻AV成熟片久久久久久,亚洲综合无码日韩,国产AV无码乱码精品国产 www.sucaiwu.net