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 相关文章推荐
实用函数10
Nov 08 PHP
PHP 解决utf-8和gb2312编码转换问题
Mar 18 PHP
一致性哈希算法以及其PHP实现详细解析
Aug 24 PHP
destoon实现底部添加你是第几位访问者的方法
Jul 15 PHP
PHP中的类型提示(type hinting)功能介绍
Jul 01 PHP
php结合ajax实现手机发红包的案例
Oct 13 PHP
Yii2中使用asset压缩js,css文件的方法
Nov 24 PHP
删除PHP数组中的重复元素的实现代码
Apr 10 PHP
PHP 7安装调试工具Xdebug扩展的方法教程
Jun 17 PHP
PhpStorm 如何优雅的调试Hyperf的方法步骤
Nov 24 PHP
php 使用expat方式解析xml文件操作示例
Nov 26 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接口与接口引用的深入解析
2013/08/09 PHP
ThinkPHP中pathinfo的访问模式、路径访问模式及URL重写总结
2014/08/23 PHP
CodeIgniter配置之config.php用法实例分析
2016/01/19 PHP
PHP中常用的魔术方法
2017/04/28 PHP
jQuery 开天辟地入门篇一
2009/12/09 Javascript
javascript实现的像java、c#之类的sleep暂停的函数代码
2010/03/04 Javascript
最常用的12种设计模式小结
2011/08/09 Javascript
Jquery的hide及toggle方法让超链接慢慢消失
2013/09/06 Javascript
原生js ActiveXObject获取execl里面的值
2013/11/01 Javascript
使用jquery实现以post打开新窗口
2014/03/19 Javascript
JS组件Bootstrap实现图片轮播效果
2016/05/16 Javascript
利用纯Vue.js构建Bootstrap组件
2016/11/03 Javascript
node通过npm写一个cli命令行工具
2017/10/12 Javascript
vue.js使用代理和使用Nginx来解决跨域的问题
2018/02/03 Javascript
angular6根据environments配置文件更改开发所需要的环境的方法
2019/03/06 Javascript
vue组件化中slot的基本使用方法
2019/05/01 Javascript
JavaScript迭代器的含义及用法
2019/06/21 Javascript
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
如何实现一个简易版的vuex持久化工具
2019/09/11 Javascript
vue-cli —— 如何局部修改Element样式
2020/10/22 Javascript
python实现俄罗斯方块游戏
2020/03/25 Python
浅析python中的迭代与迭代对象
2018/10/08 Python
Python向excel中写入数据的方法
2019/05/05 Python
python+django+rest框架配置创建方法
2019/08/31 Python
解决python 虚拟环境删除包无法加载的问题
2020/07/13 Python
布局和排版教程 纯css3实现图片三角形排列
2014/10/17 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
New Balance波兰官方商城:始于1906年,百年慢跑品牌
2017/08/15 全球购物
荷兰在线体育用品商店:Avantisport.nl
2018/07/04 全球购物
旅游管理实习自我鉴定
2013/09/29 职场文书
校园达人秀策划书
2014/01/12 职场文书
培训主管岗位职责
2014/02/01 职场文书
制作部班长职位说明书
2014/02/26 职场文书
检讨书范文500字
2015/01/28 职场文书
2015年信息中心工作总结
2015/05/25 职场文书
小学生暑假安全保证书
2015/07/13 职场文书