Laravel 未验证不触发
Laravel unauthenticated no triggering
我正在使用 rappasoft/laravel-5-boilerplate。
我在使用 'auth' 中间件作为路由时遇到了一个奇怪的问题。测试对需要登录的页面的访问。未登录时,它会显示未经身份验证的异常错误,并且不会重定向到登录屏幕。在 Handler.php 文件中存在未验证的并且具有重定向到登录屏幕的代码,但从未调用过此函数!
为什么未验证的函数不会在 Illuminate\ Auth\AuthenticationException 上调用??没有意义。
路线:
Route::group(['middleware' => 'auth'], function () {
Route::get('project/add', 'Project\ProjectController@create')-
>name('project.add');
});
Exceptions/Handler.php
protected function unauthenticated( $request, AuthenticationException $exception )
{
if ( $request->expectsJson() ) {
return response()->json( [ 'error' => 'Unauthenticated.' ], 401 );
}
return redirect()->guest( route( 'frontend.auth.login' ) );
}
然后为了测试,我只是访问:http://px.app/project/add
为了解决这个问题,我将检查身份验证的代码放入了 render 方法中,所以现在它在异常触发时正确调用未验证。
很奇怪,以前默认情况下不能这样做。
确保您已将 AuthenticationException::class
包含在 Exceptions/Handler.php
的 $dontReport
数组中。
我正在使用 rappasoft/laravel-5-boilerplate。
我在使用 'auth' 中间件作为路由时遇到了一个奇怪的问题。测试对需要登录的页面的访问。未登录时,它会显示未经身份验证的异常错误,并且不会重定向到登录屏幕。在 Handler.php 文件中存在未验证的并且具有重定向到登录屏幕的代码,但从未调用过此函数!
为什么未验证的函数不会在 Illuminate\ Auth\AuthenticationException 上调用??没有意义。
路线:
Route::group(['middleware' => 'auth'], function () {
Route::get('project/add', 'Project\ProjectController@create')-
>name('project.add');
});
Exceptions/Handler.php
protected function unauthenticated( $request, AuthenticationException $exception )
{
if ( $request->expectsJson() ) {
return response()->json( [ 'error' => 'Unauthenticated.' ], 401 );
}
return redirect()->guest( route( 'frontend.auth.login' ) );
}
然后为了测试,我只是访问:http://px.app/project/add
为了解决这个问题,我将检查身份验证的代码放入了 render 方法中,所以现在它在异常触发时正确调用未验证。
很奇怪,以前默认情况下不能这样做。
确保您已将 AuthenticationException::class
包含在 Exceptions/Handler.php
的 $dontReport
数组中。