如何排除单个控制器的全局过滤器

how to excluding global filter for a single controller

我正在为我的 Codeigniter 4 项目使用 Myth-Auth 库,并且我在全局启用登录过滤器之前。因此,如果有人想在未登录的情况下访问任何控制器,则会重定向到登录页面。
我的项目是一个物联网项目,我制作了 1 个控制器来处理来自 NodeMCU 的数据。但是因为我全局启用了登录过滤器,所以我的 nodemcu 无法访问这个控制器并且总是重定向到登录页面。
所以我的问题是如何仅针对单个控制器排除此全局过滤器?
谢谢

已经解决
只需在过滤器配置中添加 except 选项

public $globals = [
    'before' => [
        'login' => ['except' => ['/Hub/*']] //just add like this
    ],
    'after' => [
        'toolbar'
      ]
    ],
];

如果您 运行 任何过滤器作为全局过滤器,则 $globals 数组应包括所有要排除的方法。当我按照提供的答案 () 中的建议进行时,我在登录时得到了一个循环重定向 - 因为过滤器一直重定向到一个方法登录,该方法登录在全局数组中没有被标记为排除。

我正在使用 IonAuth 身份验证库,所以我的 $globals 数组现在如下所示:

    public $globals = [
    'before' => [
        'checkLogin' => [
            'except' => [
                //method I wanted publically available
                'calls/public', 
                //IonAuth methods that should be publically available
                'auth/login', 
                'auth/forgot_password',
                'auth/reset_password',
                ]
            ] //just add like this
        // 'honeypot',
        // 'csrf',
    ],
    'after' => [
        'toolbar',
        // 'honeypot',
    ],
];

我已经完成了它并且在我的情况下它工作得很好。

  public $globals = [
    'before' => [
        // 'honeypot',
        // 'csrf',
        // 'invalidchars',
        // 'dates',
        'isLoggedIn'=> ['except' => ['login','/']],
        // 'IPBlocker'
        // 'APIBlocker',
    ],
    'after' => [
        'toolbar',
        // 'honeypot',
        // 'secureheaders',
        // 'dates',
        // 'LoginFilter',
        // 'APIBlocker',

    ],
];