2016-12-12 5 views
1

Ich benutze Laravel 5.3 und habe bereits herausgefunden, dass der alte Auth Controller in den Core (Illuminate ...) verschoben wurde. Für nicht authentifizierte Benutzer gibt es eine "nicht authentifizierte" Funktion in App \ Exceptions \ Handler.php, die aufgerufen wird, wenn ein nicht authentifizierter Benutzer eine "Authentifizierungs" -Ausnahme auslöst.Laravel 5.3 Login/Auth Aktionen erstellen

Allerdings habe ich nicht gefunden, wo eine Funktion zu setzen, die jedesmal, wenn ein Benutzer in erfolgreich Protokolle aufgerufen werden soll oder hat erfolgreich vom erinnern Token authentifiziert wurde. In meinem Beispiel sollte diese Funktion einige Dinge wie Log-IP usw. tun.

Können Sie mir helfen, wo eine solche Funktion zu setzen?

Danke!

Antwort

1

Ich denke, es kann mit diesem Befehl in der Eingabeaufforderung durchgeführt werden.

php artisan make:auth 
+0

Ich habe dies bereits getan und das Authentifizierungssystem (Register, Login ...) funktioniert ganz gut. Ich möchte nur eine benutzerdefinierte Funktion hinzufügen, die jedes Mal aufgerufen wird, wenn sich jemand erfolgreich anmeldet. Diese – Tobi

0

Es sei denn, ich bin etwas fehlt, gibt es keine "Nicht authentifiziert" -Funktion in App \ Ausnahmen handler.php von Laravel \ 5.3

Sie in authorization actions

Laravel 5.3 mit dem Auth kommt aussehen sollte Scafolding vorverpackt.

PROJECT/app/Http/Controllers/Auth 
+0

ist die Funktion von meinem handler.php: 'geschützte Funktion nicht authentifiziert ($ request, AuthenticationException $ exception) { if ($ request-> expectsJson()) { return response() -> json ([‘ Fehler '=>' Nicht authentifiziert. '], 401); } \t \t \t \t echo $ Anfrage; return redirect() -> Gast ('Login'); } ' – Tobi

+0

Das ist eine benutzerdefinierte Funktion, nehme ich an? Ich habe gerade ein einfaches Projekt zum Spaß mit Laravel Framework Version 5.3.26 erstellt und es hat diese Funktion nicht. Aber das ist nicht das Problem. – codiiv

+0

Möglicherweise müssen Sie einen Ereignis-Listener erstellen, der auf https: // laracasts hört.com/discuss/channels/general-diskussion/login-event-handling-in-laravel-5 – codiiv

0

In 5.3 habe ich nur die Erfolg und Misserfolg Aktionen für die Anmeldung mit der Out-of-the-Box-Authentifizierung geändert. Dieser Gist könnte dir hilfreich sein. Es wird Schritt für Schritt erklärt, wie man sich mit api/login anmeldet und ein Token an eine mobile Plattform zurückgibt. Anschließend können Sie anschließend mit dem Token an alle Ihre APIs zurückrufen. Ich änderte die Rückkehr, um den JSON-Anfragekopf zu erkennen und den Benutzer als json zurückzusenden.

Hier sind die Informationen, die Ihnen helfen könnten. Laravel API Token Help

+0

Die Schritte 7 und 8 sollten Ihnen bei Ihrer Frage helfen. –

0

Hier ist eine benutzerdefinierte Auth-Lösung.

class AdminsController extends Controller 
{ 
    public function getLogin() 
    { 
     return view('admin.login'); 
    } 

    public function postLogin(Request $request) 
    { 
     $this->validate($request, ['email' => 'required|email', 'password' => 'required']); 

     if(!Auth::attempt(['email' => $request['email'], 'password' => $request['password']])) { 
      return redirect()->back()->with(['fail' => 'Could not log you in!']); 
     } 

     return redirect()->route('admin.dashboard'); 

    } 

    public function getLogout() 
    { 
      Auth::logout(); 
      return redirect()->route('index'); 
    } 
} 

Und im routes.php:

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

    Route::get('/admin/login', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.login' 
    ]); 

    Route::post('/admin/login', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.login' 
    ]); 
}); 

Route::group(['middleware' => ['auth']], function() { 
    Route::get('/admin/logout', [ 
     'uses' => '[email protected]', 
     'as' => 'admin.logout' 
    ]); 
}); 

Hoffnung, die Sie erhalten, um mit diesem Code und es war hilfreich.