Laravel中如何实现完整后台管理系统的登录退出功能
Admin 2022-06-24 群英技术资讯 1878 次浏览
这篇文章主要介绍“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');
}
这就是一个简单的登录,当然,后台登录的管理,我们需要进行判断身份,在这里不多说
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
YII2框架中日志要如何配置及使用?YII2框架是一个高性能,高效率的PHP框架,也是比较容易学习和使用的,在YII2中就有提供非常方便的日志组件,配置也比较简单,下面我们就来一起了解一下YII2框架中日志的配置与使用。
在thinkphp中,D方法可以返回实例化的模型对象。D方法用于实例化自定义模型类,是ThinkPHP框架对Model类实例化的一种封装,语法“D('[项目://][分组/]模型','模型层名称')”,返回值为实例化的模型对象。
这篇文章主要介绍了Yii框架 session 数据库存储操作方法,结合实例形式分析了使用Yii框架session组件配置与数据库存储相关操作技巧,需要的朋友可以参考下
在本篇文章里小编给大家整理的是一篇关于PHP7中对十六进制字符串处理的问题详解内容,有需要的朋友们可以跟着学习下。
php数组赋值方式:1、传递赋值是默认的传递方式,如果某个变量的值被赋予了另一个变量,那么改变其中一个的值对其他变量没有影响。2、引用赋值意味着新变量简单地引用原始变量,改变新变量值会影响原始变量值。
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008