如何排除单个控制器的全局过滤器
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',
],
];
我正在为我的 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',
],
];