2017-12-29 20 views
0

mein Projekt läuft auf Laravel 5.4 und ich passport verwenden, um Authentifizierung über API mit bearer token. alles funktioniert gut, aber wenn nicht autorisierte Benutzer versuchen, Ressourcen zu erreichen, die eine Authentifizierung erfordern, der Benutzer erhält Fehlermeldung 405 method not allowed enter image description hereLaravel Reisepass benutzerdefinierte Fehlermeldung und Statuscode, wenn Benutzer nicht autorisierte

aber ich will Antwort 401 unauthorized sein. Wie kann ich dies ändern und nur eine Antwort mit einer Nachricht senden, anstatt eine Ausnahme? Ich habe recherchiert, konnte aber nichts finden. Ich benutze standard Laravel Middleware für die Autorisierung auth:api. Meine Routen in Middleware gruppiert

Route::group(['middleware' => 'auth:api'], function() { 
    // these routes should return 401 if user not authenticated 
} 

Antwort

1

Gut Methode nicht erlaubt Ausnahme passiert, weil Sie den falschen Endpunkt treffen. Sie posten auf eine get oder vice verca.

Allerdings können Sie Ihre Ausnahmen ändern, wenn Sie zu App\Exception gehen öffnen handler.php in render() Methode dort können Sie Ausnahmen einstellen, wie Sie beispielsweise möchten:

public function render($request, Exception $exception) 
{ 
    if($exception instanceof \Illuminate\Auth\AuthenticationException){ 

      return response('unauthorized', 401); 

    } 
     return parent::render($request, $exception); 
} 

Auf handler() Methode nur prüfen, ob $exception Instanz eines Ausnahmeobjekt ist, Wenn ja, können Sie die Antwort ändern, wie Sie möchten. Für Laravel Ausnahmen folgen link

+0

konnte nicht den Ort finden, wo ich damit umgehen kann. Danke! –

Verwandte Themen