$ this-> middleware('auth:guard')和$ this-> middleware('guest:guard')

时间:2019-06-03 05:58:27

标签: laravel laravel-5

Laravel文档说,我们可以将参数传递给使用:指定的中间件。 here

因此,如果我将保护参数作为参数传递给guestauth中间件,如

$this->middleware('guest:admin')

OR

$this->middleware('auth:admin')

那是什么意思?

AdminController.php

中所示
    class AdminController extends Controller
{

    use AuthenticatesUsers;


    protected $redirectTo = '/admin/dashboard';

    public function __construct()
    {
        $this->middleware('auth:admin')->except(['show_login','login']);
        $this->middleware('guest:admin')->only(['show_login','login']);
    }
}

2 个答案:

答案 0 :(得分:0)

您可以在中间件句柄方法中获取该参数。

public function handle($request, Closure $next, $role)
{
    if (! $request->user()->hasRole($role)) {
        // Redirect...
    }

    return $next($request);
}

有关更多信息,请阅读this

答案 1 :(得分:0)

此参数指定用于保护用户身份的保护see the docs (scroll down to "Specifying A Guard")

有关自定义防护的更多信息:https://laravel.com/docs/5.8/authentication#adding-custom-guards

auth中间件在App\Http\Kernel:54中定义,您可以分别在\App\Http\Middleware\Authenticate\App\Http\Middleware\RedirectIfAuthenticated中更改重定向URL