我想判断用户是否在BaseControllerinitController方法中直接登录到我的应用程序,如果没有登录,则将他们重定向到OIDC身份验证机制(AuthController).

如果我运行下面的代码,我的脚本显然会循环到自己.

BaseController.php

public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
    {
        parent::initController($request, $response, $logger);

        if (!session()->userLogin) {
            //no user logged in
            $this->response->redirect(site_url('/auth'));
        }
    }

那么,我如何才能阻止AuthControler重定向到自身呢?

我应该覆盖AuthController中的initController方法,还是可以用get_class($this);判断BaseControllerinitController中的当前控制器或路由的名称?

哪一个是最合适的?

推荐答案

最简单的方法,就像@simonweber说的那样,就是使用global filtersEXCEPT directive.

它已经在这里得到了回答:

how to excluding global filter for a single controller

Php相关问答推荐

MariaDB 11.3.2+PHP:服务器向客户端发送未知的字符集(0).请向开发人员报告

LaravelEloquent 地根据表中的值提取记录

创建一个新的可变产品及其属性以用于WooCommerce中的变体

获取并判断WooCommerce用户订阅结束日期

WooCommerce常规价格增加额外的附加平价

将下拉 Select 的值从WooCommerce后端保存并显示到前端

从AJAX响应中获取一个未定义的html

带Redhat php curl的http_code 0

是否有条件判断是否发布了另一个Wordpress页面?

Rappasoft Datatables V2(我想在另一个表具有相同值列时显示数据)

Laravel withOnly不限制查询

重命名 WordPress 中现有的自定义分类法名称和标签

在 PHP 中将字符串分解为数组(字符串类似于 WP 短代码)

如何用十进制和字母数字减go 和添加 id

WooCommerce 以编程方式添加的费用不会持续存在

PHP 中的 libgd 无法读取 Apache 配置中的 SetEnv GDFONTPATH

如何正确判断 PHP 是否已正确配置为使用 DOMDocument?

图像未在 Laravel Ajax Crud 中显示

在WooCommerce单产品页面中显示特价产品的节省金额

如何在PHP中对多个脚本调用进行排队?