雷达智富

首页 > 内容 > 程序笔记 > 正文

程序笔记

TP6.0 基础控制器登录流 v0.0.1

2024-09-11 13

1. 定义公共基础控制器2. 定义用于校验登录状态控制器 Auth.php (未登录重定向到登陆页)3. 登录相关方法, 已登录访问控制器方法重定向到后台主页

1. 定义公共基础控制器


定义应用的公共控制器 Base.php

<?phpdeclare(strict_types=1);namespace app\admin\controller;use app\BaseController;/** * admin 应用基础控制器 */class Base extends BaseController{    // 初始化    protected function initialize()    {        $this->prefix = 'aiaad';        $this->home   = '/admin/index';        $this->login  = '/admin/login';    }    /**     * 检测是否登录     *     * @return bool true 已登录 false 未登录     */    protected function checkLogin()    {        return session('?' . $this->prefix);    }    // +-----------------------------------------------------------    // | 登录、退出    // +-----------------------------------------------------------    /**     * 登录成功     */    protected function sign($data)    {        session($this->prefix, $data);        $this->homePage();    }    /**     * 退出登录     */    protected function logout()    {        session($this->prefix, null);        $this->loginPage();    }    // +-----------------------------------------------------------    // | 重定向    // +-----------------------------------------------------------    /**     * 重定向到登陆页     */    protected function loginPage()    {        $this->redirect($this->login);    }    /**     * 重定向到后台主页     */    protected function homePage()    {        $this->redirect($this->home);    }    /**     * 解决基初始化方法中无法重定向问题     *     * @param ...$args redirect助手函数参数     */    private function redirect(...$args)    {        throw new \think\exception\HttpResponseException(redirect(...$args));    }}

Auth.php (未登录重定向到登陆页)" class="reference-link" target="_blank">2. 定义用于校验登录状态控制器 Auth.php (未登录重定向到登陆页)


<?phpdeclare(strict_types=1);namespace app\Admin\controller;/** * 基础控制器处理登陆状态校验 *  * 需要校验登陆状态的控制器继承当前控制器即可 */class Auth extends Base{    // 初始化    protected function initialize()    {        // 调用父类初始化方法        parent::initialize();        // 未登录跳转到登陆页面        $this->checkLogin() || $this->loginPage();    }}

3. 登录相关方法, 已登录访问控制器方法重定向到后台主页

<?phpdeclare(strict_types=1);namespace app\admin\controller;/** * 处理登录相关方法 */class Login extends Base{    /**     * 初始化方法     *      * 已经登录再访问登陆页面重定向到后台主页     */    protected function initialize()    {        // 调用父类初始化方法        parent::initialize();        // 已经登录访问登录页重定向到后台主页        $this->checkLogin() && $this->homePage();    }    /**     * 登录接口     */    public function index()    {        // ... 登录逻辑        // 登录成功后重定向到后台主页        $data = ['id' => mt_rand(1, 999), 'name' => '张三'];        $this->sign($data);    }}
更新于:8天前
赞一波!

文章评论

全部评论