前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >TP6实现登录后台管理(完结)

TP6实现登录后台管理(完结)

作者头像
以星河为聘礼
修改2021-09-22 11:08:01
1.2K0
修改2021-09-22 11:08:01
举报
文章被收录于专栏:编码遇到的坑

在上篇文章中说到用模型获取用户信息,判断是否登录场景,接下来本节主要讲用base控制器,判断用户是否登录,逻辑如下:

未登录:用户----->登陆界面

已登陆: 用户---->首页登录状态

首先我们需要去创建base控制器取名为UserBaseController.php

代码如下

代码语言:javascript
复制
namspace app\admin\controller;
 
use think\BaseController;
 
class UserBaseController exetends {
//定义全局属性
public $adminUser = null
 
public function initialize()
{
    //继承父类的initialize方法
    parent::initialize();
    
    //判断用户是否登录
    if(empty(isLogin()))
    {    //如果isLogin下的session为空,那么就返回login页面
        return $this->redirect(url("login/index"))
 
    }
 
}
public function isLogin()
{
 
//上节中login下的session
//获取session内容
$this->adminUser = session(config("admin.session_admin"));
 
//判断session内容是否为空
//null返回false,不是则返回true
if(empty($this->adminUser)){
    return false;
}
    return true
}
 
//传入动态参数$args
public function redirect(...$args){
    throw new HttpResponesException(redirect(...$args));
 
}
}

注意: 在controller下涉及到登录的都需要继承UserBaseController,否则可能就会有问题

在Login.php中需要重写重定向否则就会进入死循环

Login.php(片段代码)

代码语言:javascript
复制
.........
 
class Login exetends UserBaseController {
//新建initialize方法
//重写重定向
public function initialize()
{
 
//判断用户是否登录
if($this->isLogin()){
 
//返回到首页内容
retrun $this->redirect(url("index/index"));
}
 
}
 
}
 
 
.........

退出功能我们则是要销毁session中的内容

同样我们也仍然需要继承UserBaseController控制器

controller/Logout.php

代码语言:javascript
复制
namspace app\admin\controller;
 
class Logout exetends UserBaseController
{
public function index(){
//销毁session
session(config("admin.session_admin"),null);
 
//销毁session后跳转到登录界面
return redirect(url("login/index"))
 
 
 
}
 
 
}

当查询打印session为null就说明已经销毁session内容了

就是这样登录的完整逻辑已经完成,

容易出现的问题如下:

1.重定向进入死循环,这时候我们需要用浏览器去排查是哪边出问题;

2.session没有初始话,无法判断session内容,一直是为null;

3.session读取的会话id可能不对;

等等问题,基本上通过浏览器就可以排查出问题所在!

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档