2017-04-10 2 views
0

Ich fand ein seltsames Verhalten in meiner Laravel App.Laravel nicht authentifizierten Handler heißt nicht

Ich habe Routen wie folgt aus:

Route::group(['as' => 'web', 'middleware' => ['web']], function() 
{ 
    Route::group(['middleware'=>['auth']], function() { 
     Route::get('personal', 'Web\[email protected]'); 
    } 
} 

In meiner app/Ausnahmen/handler.php ich die nicht authentifizierte Funktion wie folgt definiert:

protected function unauthenticated($request, AuthenticationException $exception) 
{ 
    if ($request->expectsJson()) { 
     return response()->json(['error' => 'Unauthenticated.'], 401); 
    } 

    return redirect()->guest('login'); 
} 

Also, wenn der Benutzer nicht authentifiziert ist und treffen Route mit auth Middleware, sollte es zu/Login umleiten.

Dies funktioniert auf lokalen und Entwicklungsservern. Aber im Produktionsserver wird es nie aufgerufen. Ich habe versucht dd() innerhalb render und unauthenticated Funktionen, aber es wird nie aufgerufen. Wenn also auf dem Produktionsserver ein nicht authentifizierter Benutzer die Route mit der Middleware auth ankreuzt, wird er immer auf/auth statt/login umgeleitet.

Haben Sie irgendwelche Erfahrung mit diesem Problem? Danke

Antwort

0

sollten Sie nicht versuchen, die Core-Handler sollte

Ihre Routing-Datei nicht verschachteltes Routing in dieser Situation verwenden zu ändern.

Im Folgenden sind einige Beispiele dafür, dass die richtigen web.php Routen für oben

Route::group(['middleware' => ['web']], function() { 

}); 

Route::group(['middleware' => ['auth']], function() { 
    Route::get('personal', 'Web\[email protected]'); 
}); 

Route::group(['middleware' => ['web', 'auth']], function() { 
    Route::get('personal', 'Web\[email protected]'); 
}); 
+0

Vielen Dank für Ihre Antwort. Aber leider funktioniert es nicht. Es ergibt sich dasselbe. Außerdem habe ich den Core-Handler nicht bearbeitet, sondern im App-Ordner und kann dort die nicht authentifizierte Weiterleitung bearbeiten. Und ich glaube nicht, dass es mit den Routen zusammenhängt, da es auf lokalen und Entwicklungsservern funktioniert. – Destiya