【问题标题】:Redirect auth controller?重定向身份验证控制器?
【发布时间】:2015-08-03 19:02:31
【问题描述】:
我在 Laravel 中使用 Auth 控制器和 auth 中间件。
如果用户没有登录,它会重定向到:
auth/login
但我希望重定向到不同的网址。
我的身份验证控制器中有这个:
protected $loginPath = '/cms/login';
protected $redirectTo = '/cms';
但它仍然重定向到:
auth/login
如何重定向身份验证控制器?
【问题讨论】:
标签:
laravel
laravel-5
laravel-5.1
【解决方案1】:
您未登录时的重定向路径在身份验证中间件中处理,该中间件位于app/Http/Middleware/Authenticate.php。
【解决方案2】:
重定向将由中间件处理。因此,将 auth 中间件中的 handle() 方法下的重定向更改如下:
/**
* 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 redirect()->guest('cms/login');
}
}
return $next($request);
}