(je suis un débutant de Laravel)
J'utilise Laravel 5.2
. J'ai réussi à activer l'authentification; en faisant le php artisan make:auth
et les trucs.
Donc, ma connexion fonctionne.
Maintenant, je dois faire quelque chose une fois que quelqu'un s'est connecté. Pour un exemple simple:
S'IDENTIFIER:
$request->session()->put('UserAgent', $ClientUserAgent);
SE DÉCONNECTER:
$request->session()->forget('UserAgent');
Je ne sais pas s'il y a (des choses comme) hooks
ou Event Listeners
, Event Handlers
, Ou quelque chose comme ça.
Comment puis-je le faire s'il vous plaît?
Réponse d'Alief ci-dessous fonctionne très bien comme prévu. Mais comme je l'ai parcouru, l'utilisation des gestionnaires d'événements est probablement la façon la plus préférée. (Cela fonctionne comme des crochets personnalisés).
Donc sans moins de respect pour la réponse d'Alief ci-dessous, permettez-moi de choisir -> cette approche des gestionnaires d'événements je viens de le découvrir.
Merci à tous!
Pour les nouvelles versions de Laravel
Si vous ne faites que quelque chose de très simple, la création d'un gestionnaire d'événements me semble exagérée. Laravel a une méthode vide incluse dans la classe AuthenticatesUsers
à cet effet.
Placez simplement la méthode suivante dans app\Http\Controllers\LoginController
(en le remplaçant):
protected function authenticated(Request $request, $user)
{
// stuff to do after user logs in
}
Pour la connexion post, vous pouvez le faire en modifiant App/Http/Controllers/Auth/AuthController.php
Ajoutez authenticated()
dans cette classe pour remplacer celle par défaut:
use Illuminate\Http\Request;
protected function authenticated(Request $request, User $user) {
// put your thing in here
return redirect()->intended($this->redirectPath());
}
Pour la déconnexion, ajoutez cette fonction dans la même classe:
use Auth;
protected function getLogout()
{
Auth::logout();
// do something here
return redirect('/');
}
Vous pouvez essayer de configurer des écouteurs d'événements pour les événements Auth qui sont déclenchés.
Vous pouvez configurer un écouteur qui écoute Illuminate\Auth\Events\Login
pour gérer ce dont vous avez besoin après la connexion et Illuminate\Auth\Events\Logout
pour se déconnecter.
Si vous testez, avec la méthode authenticated(Request $request, User $user)
n'utilisez pas d'alerte à l'intérieur de cette méthode pour tester, il n'affichera aucun résultat, il vaut donc mieux mettre une requête d'insertion ou quelque chose comme ça pour tester ceci méthode.
Pourquoi pas une simple vérification
if(Auth::check()){
//your code
}
Assurez-vous d'inclure use Auth;