laravel框架之後臺登入、退出
阿新 • • 發佈:2019-01-13
我們在寫後臺管理系統時,登入,退出是避免不了的,那我們如何使用laravel實現呢?
首先,我們來看看登入如何實現?
//登入 public function logins(){ //post方式則為登入操作 if(Request()->isMethod('post')){ $info = Request()->only('username','pwd');//過濾表單提交資料,接受使用者名稱,密碼 $result = Admin::admin_login($info);//此處為呼叫模型,進行驗證 //根據模型返回的結果,進行判斷登入狀態 if($result['status']==200){ return redirect('index')->with('id',Session::get('userinfo')['uid']); }elseif($result['status']==205){ return redirect('login')->with('msg',$result['message']); }elseif($result['status']==203){ return redirect('login')->with('msg',$result['message']); }else{ return redirect('login'); } }elseif(Request()->isMethod('get')){//如果請求方式為get方式,說明為登入頁面 return view('CloudAdmin/login'); } }
接下來,我們看模型的一些操作
//登入操作判斷 public static function admin_login($info){ if(empty($info['username'])){ $result['status']=205; $result['message']="請輸入使用者名稱"; }else{ if(empty($info['pwd'])){ $result['status']=205; $result['message']='請輸入密碼'; }else{ $user = DB::table('sc_admin')->where('username',$info['username'])->first(); if(!$user){ $result['status']=202; $result['message']="使用者不存在"; }else{ if(md5($info['pwd'])!=$user->password){ $result['status']=203; $result['message']="密碼錯誤"; }else{ $userinfo = array('uid'=>$user->id,'username'=>$user->username); Session::put('userinfo',$userinfo);//登入成功,儲存當前登入使用者的id和使用者名稱 //$time--將最後登入時間以及登入狀態進行更新 $time = array('last_login'=>date('Y-m-d H:i:s'),'login_status'=>1); DB::table('sc_admin')->where('id',$user->id)->update($time); //儲存伺服器資訊 $web = array( 'IP' => $_SERVER['REMOTE_ADDR'], 'login_time' => date('Y-m-d H:i:s',$_SERVER['REQUEST_TIME']), 'webserver' => $_SERVER['SERVER_SOFTWARE'], 'admin'=>Session::get('userinfo')['username'] ); //將伺服器資訊入庫 DB::table('sc_webinfo')->insert($web); $result['status']=200; $result['message']="登入成功"; } } } } return $result; }
登入成功之後,一切都是基於session存在的情況下操作的,如果session資訊不存在,則會返回登入介面;
再來看看退出操作:當前點選"退出"之後,我們應該執行那些操作?
//退出登入,清除session,返回登入頁面 public function login_out(){ //點選退出,將此使用者的登入狀態改變為未登入 $array=array('login_status'=>0); DB::table('sc_admin')->where('id',Session::get('userinfo')['uid'])->update($array); //刪除session資訊 Session::forget('userinfo'); return redirect('login'); }
這就是一個簡單的登入,當然,後臺登入的管理,我們需要進行判斷身份,在這裡不多說–希望對大家有所幫助