'I got Livewire\Redirector::$headers error with custom Exception raised
When In Laravel 8 / livewire 2.5 I make checks and logout from livewire booted method :
if($method_name == 'edit' and $loggedUser->can(PERMISSION_EDIT_ITEM)) {
Auth::logout();
return redirect('/login')
->with('status', 'You have no permission to enter CrudItems.edit method');
}
it works ok for me. But when use custom Exception raised :
if($method_name == 'edit' and $loggedUser->can(PERMISSION_EDIT_ITEM)) {
throw new InvalidPermissionException(__FILE__, __LINE__);
}
with file app/Exceptions/InvalidPermissionException.php:
<?php
namespace App\Exceptions;
use Exception;
class InvalidPermissionException extends Exception
{
public function __construct($_file, $_line)
{
\Log::info( ' INSIDE __construct InvalidPermissionException' );
parent::__construct();
}
}
and in app/Exceptions/Handler.php :
<?php
namespace App\Exceptions;
...
class Handler extends ExceptionHandler
{
public function register()
{
$this->reportable(function (Throwable $e) {
//
});
}
public function render($request, Throwable $e)
{
$response = parent::render($request, $e);
\Log::info(varDump($response->status(), ' -1 app/Exceptions/Handler.php $response->status()::'));
if ($response->status() === 419) {
\Log::info(' Expired');
return app(LogoutResponse::class);
}
if ($response->status() === 401) {
\Log::info(' 401');
return redirect()->guest(route('login'));
}
$exception = Handler::prepareException($e);
if ($exception instanceof InvalidPermissionException) {
Auth::logout();
return redirect('/login')
->with('status', 'You have no permission to enter this method');
}
return $response;
}
}
I got error :
[2021-11-04 09:15:53] local.ERROR: Undefined property: Livewire\Redirector::$headers {"exception":"[object] (ErrorException(code: 0): Undefined property: Livewire\\Redirector::$headers at /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:191)
[stacktrace]
#0 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(191): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError()
#1 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(80): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->addCookieToResponse()
#2 /projectPath/vendor/laravel/framework/src/Illuminate/Support/helpers.php(263): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->Illuminate\\Foundation\\Http\\Middleware\\{closure}()
#3 /projectPath/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php(82): tap()
#4 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Foundation\\Http\\Middleware\\VerifyCsrfToken->handle()
#5 /projectPath/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php(49): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#6 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\View\\Middleware\\ShareErrorsFromSession->handle()
#7 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/AuthenticateSession.php(58): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#8 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\AuthenticateSession->handle()
#9 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(121): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#10 /projectPath/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php(64): Illuminate\\Session\\Middleware\\StartSession->handleStatefulRequest()
#11 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Session\\Middleware\\StartSession->handle()
#12 /projectPath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php(37): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#13 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\AddQueuedCookiesToResponse->handle()
#14 /projectPath/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php(67): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
#15 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(167): Illuminate\\Cookie\\Middleware\\EncryptCookies->handle()
#16 /projectPath/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php(103): Illuminate\\Pipeline\\Pipeline->Illuminate\\Pipeline\\{closure}()
How this error can be fixed ?
Thanks in advance!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|