내 사이트 내의 역할 및 권한을 제어하기 위해 spatie 권한 모듈을 사용하고 있습니다. Authenticate middleware에 조금 추가했습니다. 내 핸들은 이제 다음과 같습니다Laravel이 사용자 정의 오류 페이지를 표시하는 대신 HttpException 객체를 반환합니다.
우리는 로그인 페이지로 보낼에서 사용자가 그렇지 않으면 우리는이 ACP에 액세스 할 수있는 권한이 있는지 확인하고, 기록되지 않습니다 그래서 경우public function handle($request, Closure $next, $guard = null)
{
if (Auth::guard($guard)->guest())
{
if ($request->ajax() || $request->wantsJson())
return response('Unauthorized.', 401);
return redirect()->guest('login');
}
if (! Auth::user()->can('access acp'))
{
if ($request->ajax() || $request->wantsJson())
return response('Unauthorised.', 403);
abort(403, "You do not have permission to access the Admin Control Panel. If you believe this is an error please contact the admin who set your account up for you.");
}
return $next($request);
}
그들에게 (403)를 표시하지 않은 경우 오류. 403.blade.php를 views/errors 폴더에 추가했습니다. 그러나 그 코드를 실행할 때 나는 단지 웁스를 얻는다! 개발자 도구는 500 개의 ISE가 반환되는 것을 보여줍니다. 왜 내 사용자 정의 오류 페이지가 표시되지 않는지 이해할 수 없습니다.
지금까지 환경을 프로덕션으로 전환하고 디버그 모드를 해제하려고 시도했지만 페이지가 표시되지 않습니다. 나는 또한 인증 예외를 던지려고했지만 다른 아무것도하지 않습니다. 나는 또한 App::abort()
을 사용해 보았지만, 나는 여전히 500 개의 ISE를 가지고있다.
Google 검색 문제를 시도했지만 문제가있는 사람을 찾을 수 없습니다. 이 작업을 수행하는 데 도움이 될만한 정보를 보내 주시면 감사하겠습니다.
으악 내가 thusly 히
try
{
abort(403, "You do not have permission to access the Admin Control Panel. If you believe this is an error please contact the admin who set your account up for you.");
} catch (HttpException $e)
{
dd($e);
}
다음 코드를 수정하면 내 오류 코드 및 메시지와 함께 HttpException
의 인스턴스를 얻을
를 반환, 왜 그 다음 표시되지 맞춤 오류 페이지?
어떤 예외 메시지는 당신이보고있는 문서에 따라해야 할 일을하나요 500? – Max
"관리자 제어판에 액세스 할 수있는 권한이 없습니다. 중단 메시지가 표시됩니다. 이것이 오류라고 생각되면 계정을 설정 한 관리자에게 문의하십시오. ' – Styphon
PHP 오류 로그를 확인 했습니까? 500은 우리가 더 높은 수준의 오류를 말하고 있음을 나타냅니다. – Dencker