Laravel $this的功能->;中间件(';auth:guard';)和$this->;中间件(';guest:guard';)
Laravel文档说,我们可以通过Laravel $this的功能->;中间件(';auth:guard';)和$this->;中间件(';guest:guard';),laravel,laravel-5,Laravel,Laravel 5,Laravel文档说,我们可以通过:将参数传递给中间件 因此,如果我将警卫作为参数传递给guest或auth中间件,例如: $this->中间件('guest:admin') 或 $this->中间件('auth:admin') 这是什么意思 如这里的AdminController.php class AdminController extends Controller { use AuthenticatesUsers; protected $redirectTo
:
将参数传递给中间件
因此,如果我将警卫作为参数传递给guest
或auth
中间件,例如:
$this->中间件('guest:admin')
或
$this->中间件('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']);
}
}
您可以在中间件句柄方法中获取该参数
public function handle($request, Closure $next, $role)
{
if (! $request->user()->hasRole($role)) {
// Redirect...
}
return $next($request);
}
有关详细信息,请阅读。此参数指定用于验证用户身份的保护 有关自定义防护的更多信息:
auth
中间件在中定义,您可以分别在\App\Http\middleware\Authenticate
和\App\Http\middleware\RedirectIfAuthenticated
中更改重定向URL。我指的是未分配给用户表的角色。这里admin有自己的提供者和守卫。我只想知道$this->middleware('auth:admin')
和$this->middleware('guest:admin')
这里是什么工作?guest
意味着你的用户没有经过身份验证,所以,guest:admin
毫无意义。@SujeetAgrahari您在中间件句柄方法中获取该参数。@VaheShak我从$this->middleware('guest:admin')
中删除了admin
。现在,即使我已登录,我也可以访问登录
路线。那怎么可能是胡说八道呢?