php教程

超轻量级php框架startmvc

laravel框架实现后台登录、退出功能示例

更新时间:2020-04-13 04:28 作者:startmvc
本文实例讲述了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');
}

这就是一个简单的登录,当然,后台登录的管理,我们需要进行判断身份,在这里不多说