0
我在Laravel应用程序中发现了一个奇怪的行为。未调用Laravel未经身份验证的处理程序
我的路线是这样的:
Route::group(['as' => 'web', 'middleware' => ['web']], function()
{
Route::group(['middleware'=>['auth']], function() {
Route::get('personal', 'Web\[email protected]');
}
}
在我的应用程序/例外/ Handler.php,我这样定义的未经验证的功能:
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest('login');
}
因此,当用户没有通过验证,并打与auth
中间件路由,它应该重定向到/登录。
这适用于本地和开发服务器。但在生产服务器中,它永远不会被调用。我试图在render
和unauthenticated
函数中尝试dd()
,但它从未被调用过。 因此,在生产服务器上,如果未经身份验证的用户使用auth
中间件命中路由,它将始终重定向到/ auth而不是/ login。
你对这个问题有什么经验吗? 谢谢
感谢您回应一些例子,适当web.php路线。但不幸的是它不起作用。结果是一样的。此外,我没有编辑核心处理程序,它在应用程序文件夹下,并且可以安全地在那里编辑未经身份验证的重定向。 我不认为它与路由有关,因为它适用于本地和开发服务器。 – Destiya