Laravel 5.2: Etwas tun, nachdem sich der Benutzer angemeldet hat?

8

(Ich bin ein Anfänger von Laravel)

Ich verwende Laravel 5.2 . Ich habe die Authentifizierung erfolgreich aktiviert. indem du php artisan make:auth und stuffs tust.

So funktioniert mein Login.

Jetzt muss ich etwas tun, sobald sich jemand eingeloggt hat. Für ein einfaches Beispiel:

LOGIN:

  • Sobald sich ein Benutzer angemeldet hat, schreiben Sie einen Wert in Session.
  • Zum Beispiel: $request->session()->put('UserAgent', $ClientUserAgent);

ABMELDEN:

  • Wenn Sie sich abgemeldet haben, löschen Sie den benutzerdefinierten Wert für die Sitzung.
  • Zum Beispiel: $request->session()->forget('UserAgent');

Ich bin nicht sicher, ob es (Dinge wie) hooks oder Event Listeners , Event Handlers oder etwas ähnliches gibt.

Wie kann ich es bitte tun?

    
夏期劇場 08.04.2016, 03:31
quelle

5 Antworten

1

Aliefs Antwort funktioniert wie erwartet. Aber wie ich gegooglet habe, ist die Verwendung der Ereignishandler wahrscheinlich der bevorzugte Weg. (Es funktioniert wie benutzerdefinierte Hooks).

Also, ohne Alefs Antwort unten zu beachten, lass mich wählen - & gt; dieser Event-Hander-Ansatz Ich habe es gerade herausgefunden.

Danke an alle!

    
夏期劇場 08.04.2016, 08:07
quelle
7

Für die Post-Anmeldung können Sie das tun, indem Sie App / Http / Controllers / Auth / AuthController.php

ändern

Fügen Sie authenticated () in diese Klasse ein, um die Standardüberschreibung zu überschreiben:

%Vor%

Auch dies in der Klasse enthalten:

%Vor%

Fügen Sie für die Abmeldung diese Funktion derselben Klasse hinzu:

%Vor%

Und schließe das auch in die Klasse ein:

%Vor%     
Alief 08.04.2016 03:53
quelle
3

Sie könnten versuchen, Ereignis-Listener für die Auth-Ereignisse einzurichten, die ausgelöst werden.

Sie können einen Listener einrichten, der auf Illuminate\Auth\Events\Login wartet, um mit dem zu arbeiten, was Sie nach der Anmeldung und Illuminate\Auth\Events\Logout für die Abmeldung benötigen.

Laravel-Dokumente - Authentifizierung - Ereignisse

    
lagbox 08.04.2016 05:14
quelle
1

Warum nicht einfach nach

suchen? %Vor%

Stellen Sie sicher, dass Sie use Auth;

einbeziehen     
Iftikhar uddin 08.04.2016 06:01
quelle
1

Für neuere Versionen von Laravel

Wenn Sie nur etwas sehr einfaches tun, dann scheint mir das Erstellen eines Event-Handlers zu viel. Laravel hat zu diesem Zweck eine leere Methode in der Klasse AuthenticatesUsers .

Platziere einfach die folgende Methode in app\Http\Controllers\LoginController (überschreibe es):

%Vor%     
kjdion84 04.03.2018 16:54
quelle