1. 程式人生 > >laravel框架之後臺登入、退出

laravel框架之後臺登入、退出

我們在寫後臺管理系統時,登入,退出是避免不了的,那我們如何使用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');
	}

這就是一個簡單的登入,當然,後臺登入的管理,我們需要進行判斷身份,在這裡不多說–希望對大家有所幫助