检查Auth是否有某个中间件

时间:2017-08-01 13:58:02

标签: php laravel

在向路线添加中间件时,访问者需要通过"传递"访问者可以看到生成的页面之前的中间件 我想知道是否以及如何检查用户是否理论上会传递任意中间件(他当前的请求不需要)

我有3个中间件123

我的路由启用了中间件12,如何检查用户是否会通过中间件3

2 个答案:

答案 0 :(得分:4)

正如其他用户试图在评论中向您解释的那样,中间件不适合这样做。中间件用于在任何给定请求到达任何视图之前检查它。

您可以使用custom guard,这样您就可以按照@ distribut0n的建议使用身份验证检查。

在这个自定义身份验证后,您可以使用Request外观来访问必要的信息,当然您可以使用Auth::user()获取更多信息,这两个项目的组合应该可以让您检查几乎任何可能的请求。

为了防止重复代码,最好只在自定义防护中声明逻辑并使用它来检查中间件。

答案 1 :(得分:-2)

你可以做什么,你可以声明一个函数来检查你的中间件最初会检查的内容,如下所示

public function passesTest() {
    return true; // check something here
}

然后你应该能够检查用户是否使用下面的代码传递了它,可以在中间件和你的视图中访问该函数。

if (Auth::passesTest()) {
    // do something
}

这样,如果你想修改它,你只需要在一个地方改变它。