當前位置:
首頁 >
单用户登陆demo-后者挤到前者,类似QQ
發布時間:2025/3/17
27
豆豆
生活随笔
收集整理的這篇文章主要介紹了
单用户登陆demo-后者挤到前者,类似QQ
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
單用戶登陸demo ,采用的是Tp5。
流程是,當用戶首次登陸是驗證用戶帳號密碼,成功的,用當前時間戳加上用戶id和ip?拼接成一個標識,暫且sign ,然后存入cookie ,時間戳存入緩存redis? ,session?攜帶用戶信息
//單點登陸demopublic function olineOneLogin(){ $params = Request::only('username,password');$validate = Validate::make(['username' => 'require','password' => 'require',]);if (!$validate->check($params)) {Error($validate->getError());}$userdata = Db::connect('login')->table('user')->where('username',$params['username'])->where('pass',md5($params['password']))->find();if( $userdata ){$time = time();$singleToken = md5(Request::ip().$userdata['uid']. $time);Cache::set($userdata['uid'],$time);Session::set('login',$userdata);Cookie::set('SINGLETOKEN',$singleToken);echo 'Landing successfully';}else{Error('帳號或密碼錯誤!');}}
驗證方法?就是用cookie里的sign?和redis的值對比下
//驗證方法function handle(){$userinfo = Session::get('login');if($userinfo){$singletoken = Cookie::get('SINGLETOKEN');if($singletoken){$time = Cache::get($userinfo['uid']);$ip = Request::ip();$secret = md5($ip.$userinfo['uid'].$time);if ($singletoken != $secret) {Session::delete('login');exit('您的帳號在另一個地點登錄'); }//通過驗證return ;}else{exit('請先登陸1'); }}else{exit('請先登陸2');}}
然后調用
public function user(){ //驗證,可以寫中間件或者父類 ,我這是demo$this->handle();echo 'hello world';}
轉載于:https://www.cnblogs.com/liubaoqing/p/10861175.html
總結
以上是生活随笔為你收集整理的单用户登陆demo-后者挤到前者,类似QQ的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象内置方法
- 下一篇: ColorStateList 使用详解