【发布时间】:2017-09-04 23:58:10
【问题描述】:
我在我的 Laravel 应用中发现了一个奇怪的行为。
我有这样的路线:
Route::group(['as' => 'web', 'middleware' => ['web']], function()
{
Route::group(['middleware'=>['auth']], function() {
Route::get('personal', 'Web\MyController@personal');
}
}
在我的 app/Exceptions/Handler.php 中,我这样定义了未经身份验证的函数:
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest('login');
}
因此,当用户未通过身份验证并使用auth 中间件访问路由时,它应该重定向到/login。
这在本地和开发服务器上运行良好。但是在生产服务器中,它永远不会被调用。我试图在render 和unauthenticated 函数中使用dd(),但它从未被调用过。
因此,在生产服务器上,如果未经身份验证的用户使用 auth 中间件点击路由,它将始终重定向到 /auth 而不是 /login。
您对这个问题有任何经验吗? 谢谢
【问题讨论】:
标签: php laravel authentication laravel-5.3