通過session id限制僅乙個使用者登入

2021-07-12 04:09:45 字數 1682 閱讀 2299

我們有的時候,希望乙個賬戶,僅在乙個地方登入。即,在別的地方登入該賬戶時,當前使用者會被自動登出。

使用者資料表admin

idname

password

session_id

1root

63a9f0ea7bb98050796b649e85481845

3olcdjkj5jjaq2u9t30mbuna96

我們實現該功能只需要在普通使用者驗證的基礎上,加一層session_id的驗證就可以了。我們在使用者登入的時候,將此時的session_id寫入資料表,session_id在本次session有效期是不會變化的。如果在別的地方,登入了該賬戶,則新的session_id值會寫入資料表,則在驗證使用者資訊的時候,當前使用者的session_id和資料表裡面的session_id不一致。

indexcontroller.class.php

<?php

/** * created by phpstorm.

* user: koastal

* date: 2016/5/15

* time: 19:28

*/class

indexcontroller

extends

controller

/*** 顯示使用者資訊頁面

*/function index()

}

logincontroller.class.php

<?php

/** * created by phpstorm.

* user: koastal

* date: 2016/5/28

* time: 20:37

*/class

logincontroller

extends

controller

/***@return bool

* 判斷當前登入使用者是否合法

*/function

islogin

()elseelseelse}}

}/**

* 顯示登入表單

*/function

form

() /**

* 執行登入操作

*/function

action

()else

}}

loginmodel.class.php

<?php

/** * created by phpstorm.

* user: koastal

* date: 2016/5/28

* time: 19:56

*/class

loginmodel

extends

model

else

}/**

*@param $name

*@param $password

*@param $session_id

*@return array/bool

*/function

logincheck

($name,$password,$session_id)elseelse}}

}

host新增 127.0.0.1 login.com

在本地新建資料庫test,新建表admin

通過session id恢復session內容

開啟session session start 取得 session test 111222333 session id session id echo session id exit fu1dmdnrk0o2pi612b8jh9kts1 根據session id查詢session資訊 sessio...

通過session id實現session共享

session 在計算機中,尤其是在網路應用中,稱為 會話 首先,多伺服器共享session問題,這個大家應該都能夠理解的,當乙個 的使用者量過大,就會使用伺服器集群,例如專門有乙個登入用的伺服器。使用者通 過登入伺服器登入之後,登入伺服器儲存了使用者的登入資訊session,而其他受訪問的伺服器,...

限制tomcat僅響應本機請求 轉)

在vps上搭建了nginx和tomcat應用,想通過nginx來反向 127.0.0.1 8080的tomcat對外提供服務,但是8080埠始終對外所有位址提供監聽,修改方法有以下三種 方案一 使用防火牆攔截8080埠 這個是第乙個能想到的做法,直接在iptables裡做就可以了,不做過多陳述 方案...