gpt4 book ai didi

php - 使用 Laravel 授权中间件

转载 作者:可可西里 更新时间:2023-10-31 23:06:04 24 4
gpt4 key购买 nike

Laravel 5.1 确实只有最少的文档......我需要清楚地了解如何使用 Auth 中间件保护路由。

文档告诉我们将“中间件”=>“auth”参数添加到路由。或者可以做

    public function __construct() 
{
$this->middleware('auth');
}

但是如何使用 Auth 中间件进行实际用户身份验证和自动重定向到/login 从 protected 路由??

最佳答案

在 Kernel.php 中 - 在 protected $routeMiddleware 下注册了中间件,如下所示:

/**
* The application's route middleware.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => 'App\Http\Middleware\Authenticate',
'auth.basic' => 'Illuminate\Auth\Middleware\AuthenticateWithBasicAuth',
'guest' => 'App\Http\Middleware\RedirectIfAuthenticated',
];

您可以看到 'auth' 已注册为使用 App\Http\Middleware\Authenticate。

然后你可以按照这个路径 - 如果你打开/app/Http/Middleware/Authenticate.php,你会发现公共(public)函数句柄:

    /**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->guest())
{
if ($request->ajax())
{
return response('Unauthorized.', 401);
}
else
{
return redirect()->guest('auth/login');
}
}

return $next($request);
}

这里是管理重定向的地方,你可以根据自己的需要修改它,或者你可以创建自定义中间件。

最后 - 正如文档中所写 - 在需要进行身份验证的 Controller 中,您将添加

public function __construct() 
{
$this->middleware('auth');
}

如果提供的中间件不适合您的需求,您可以创建自定义中间件。

关于php - 使用 Laravel 授权中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32164695/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com