【PHP笔记十】TP5.1管理后台实现登录功能、

1、我们在application-admin文件夹下进行后台功能开发。

1、我们使用后台H-ui 前端框架,版本H-ui.admin_v3.1.3.1
2、下载桌面并解压。
3、将资源文件夹libstatictemp、移动到项目的public-static-admin文件夹下。
4、在application-admin里面创立view文件夹,并将包含loginhomewelcome功能的移动相应位置。
5、修改html里面的资源路径、指引到项目public-static-admin下。
6、设置路由访问测试效果。

【PHP笔记十】TP5.1管理后台实现登录功能、_第1张图片

路由

Route::group('admin',function (){
    Route::any('home','admin/HomeController/home');         // 后台首页
    Route::any('welcome','admin/HomeController/welcome');   // 欢迎页
    Route::any('cache','admin/HomeController/webCache');    // 清除缓存
});

login/index.html




  
  
  
  
  
  
  
  
  
  
  

控制器

    public function home(){
        return view('home/index');
    }
    public function welcome(){
        return view('home/welcome');
    }

2、引入验证码框架,进行管理后台的登录操作。

执行composer命令,通过composer导入。

composer require topthink/think-captcha=2.*

【备注】CMD命令行窗口长时间没反应

// 打开PhpStorm命令行窗口并执行如下命令:
composer config -g repo.packagist composer https://packagist.phpcomposer.com

【镜像还原】

// 如果需要解除镜像并恢复到 packagist 官方源,请执行以下命令:
composer config -g --unset repos.packagist

下载成功,配置完路由访问测试一下:

【PHP笔记十】TP5.1管理后台实现登录功能、_第2张图片

设置路由,访问 captcha方法如图:

【PHP笔记十】TP5.1管理后台实现登录功能、_第3张图片

通过代码加入登录首页中

   

3、后台登录首页中实现登录功能。

1、在admin-LoginController中添加signIn方法,并设置路由。
2、新建Model类,进行数据层操作。
3、设置login.html相关参数和请求方法。

login.html截取重要相关方法配置

    

控制器


【PHP笔记十】TP5.1管理后台实现登录功能、_第4张图片

模型类


【PHP笔记十】TP5.1管理后台实现登录功能、_第5张图片

通过路由访问登录页面,测试成功,简单的登录功能完成。

4、实现简单退出功能。

Route::get('logout','admin/LoginController/logout');   // 路由设置
  • 退出
  • // HTML文件添加事件
    public function logout(){
        return $this->redirect('/admin/login');
    }
    

    5、增加登录Session控制机制。

    LoginController控制器的signIn方法里面,当用户登录验证成功之后设置Session

    // 记录Session
        public function signIn(Request $request){
            // TODO获取用户提交信息
            // TODO登录验证成功
            // 记录Session
            Session('username',$user_name);
             // TODO界面跳转
            return $this->success($res['info'],'/admin/home');
        }
    

    LoginController控制器的logout方法里面,进行路由过滤。

        public function logout(){ 
            // 清除Session
            Session('username',null);
            // TODO界面跳转
            return $this->redirect('/admin/login');
        }
    

    用户如果在未登录情况,可以直接通过路由访问home主页。
    为了避免上述情况发生我们需要在每一次路由访问的时候进行过滤。
    BaseController控制器的initialize方法里面,验证Session是否存在?跳转登录页。

       /**
         * 初始化方法
         */
        protected function initialize()
        {
             if (Session('username') == null){
                 return $this->redirect('/admin/login');
             }
        }
    

    注:LoginController无需继承BaseController。否则出现重定向次数过多,导致服务器崩溃的问题。

    总结:
    这样我们的管理后台的登录逻辑已完成。
    包括:资源文件导入,后台页面引入+配置,验证码框架继承,验证码展示,验证码刷新,模型类创建,路由绑定,HTML事件绑定,登录退出事件处理,登录功能,退出功能,Session机制。

    你可能感兴趣的:(【PHP笔记十】TP5.1管理后台实现登录功能、)