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


Posted in PHP onOctober 31, 2019

本文实例讲述了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程序设计有所帮助。

PHP 相关文章推荐
PHP的中问验证码
Nov 25 PHP
PHP 组件化编程技巧
Jun 06 PHP
PHP获取当前页面完整URL的实现代码
Jun 10 PHP
php缓存技术详细总结
Aug 07 PHP
PHP实现的下载远程图片自定义函数分享
Jan 28 PHP
yii2.0实现pathinfo的形式访问的配置方法
Apr 06 PHP
php版阿里云OSS图片上传类详解
Dec 01 PHP
php表单文件iframe异步上传实例讲解
Jul 26 PHP
PHP自定义序列化接口Serializable用法分析
Dec 29 PHP
PHP命名空间与自动加载类详解
Sep 04 PHP
PHP设计模式之PHP迭代器模式讲解
Mar 22 PHP
php设计模式之抽象工厂模式分析【星际争霸游戏案例】
Jan 23 PHP
TP5框架简单登录功能实现方法示例
Oct 31 #PHP
Laravel框架实现即点即改功能的方法分析
Oct 31 #PHP
laravel 框架实现无限级分类的方法示例
Oct 31 #PHP
tp5框架的增删改查操作示例
Oct 31 #PHP
PHP简单实现图片格式转换(jpg转png,gif转png等)
Oct 30 #PHP
thinkPHP框架乐观锁和悲观锁实例分析
Oct 30 #PHP
PHP的HTTP客户端Guzzle简单使用方法分析
Oct 30 #PHP
You might like
php中处理模拟rewrite 效果
2006/12/09 PHP
php和jquery实现地图区域数据统计展示数据示例
2014/02/12 PHP
php选择排序法实现数组排序实例分析
2015/02/16 PHP
Laravel学习教程之路由模块
2017/08/18 PHP
Laravel配合jwt使用的方法实例
2020/10/25 PHP
验证用户是否修改过页面的数据的实现方法
2008/09/26 Javascript
jquery如何判断某元素是否具备指定的样式
2013/11/05 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
AngularJs  Understanding Angular Templates
2016/09/02 Javascript
AngularJS+Bootstrap实现多文件上传与管理
2016/11/08 Javascript
Bootstrap table两种分页示例
2016/12/23 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
vue-router 源码实现前端路由的两种方式
2018/07/02 Javascript
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
服务端预渲染之Nuxt(使用篇)
2019/04/08 Javascript
JavaScript工具库MyTools详解
2020/01/01 Javascript
node.js制作一个简单的登录拦截器
2020/02/10 Javascript
vue实践---根据不同环境,自动转换请求的url地址操作
2020/09/21 Javascript
[02:09]抵达西雅图!中国军团加油!
2014/07/07 DOTA
Python标准库与第三方库详解
2014/07/22 Python
Numpy掩码式数组详解
2018/04/17 Python
python远程连接MySQL数据库
2019/04/19 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
tensorflow模型转ncnn的操作方式
2020/05/25 Python
基于python requests selenium爬取excel vba过程解析
2020/08/12 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
详解CSS3选择器的使用方法汇总
2015/11/24 HTML / CSS
Servlet的生命周期
2013/08/25 面试题
有兼职工作经历的简历自我评价
2014/03/07 职场文书
市场部经理岗位职责
2014/04/10 职场文书
党员剖析材料范文
2014/09/30 职场文书
企业与个人合作经营协议书
2014/11/01 职场文书
英文道歉信
2015/01/20 职场文书
经费申请报告范文
2015/05/18 职场文书
2016年“12.3”国际残疾人日活动总结
2016/04/01 职场文书
win7配置本地ftp服务器的图文教程
2022/08/05 Servers