Laravel文档说,我们可以将参数传递给使用:
指定的中间件。 here
因此,如果我将保护参数作为参数传递给guest
或auth
中间件,如
$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']);
}
}
答案 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