评论

收藏

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

开发技术 开发技术 发布于:2021-09-16 10:42 | 阅读数:197 | 评论:0

这篇文章主要介绍了laravel框架实现后台登录、退出功能,结合实例形式详细分析了Laravel框架后台登录、退出相关的请求发送、验证、session读写与删除等相关操作技巧,需要的朋友可以参考下
本文实例讲述了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');
}
这就是一个简单的登录,当然,后台登录的管理,我们需要进行判断身份,在这里不多说
希望本文所述对大家基于Laravel框架的PHP程序设计有所帮助。
原文链接:https://blog.csdn.net/lingluo110700/article/details/85120720

关注下面的标签,发现更多相似文章