Laravel 5.2 : Do something after user has logged in?

后端 未结 6 2152
时光说笑
时光说笑 2020-12-18 18:07

(I\'m a beginner of Laravel)

I\'m using Laravel 5.2. I have successfully enabled the Authentication; by doing the php artisan make:auth

相关标签:
6条回答
  • 2020-12-18 18:38

    If you are testing, with authenticated(Request $request, User $user) method dont use alert inside this method to test, it will not show any result, so better put some insert query or something like that to test this method.

    0 讨论(0)
  • 2020-12-18 18:44

    For newer versions of Laravel

    If you are only doing something very simple then creating an event handler seems overkill to me. Laravel has an empty method included in the AuthenticatesUsers class for this purpose.

    Just place the following method inside app\Http\Controllers\LoginController (overriding it):

    protected function authenticated(Request $request, $user)
    {
        // stuff to do after user logs in
    }
    
    0 讨论(0)
  • 2020-12-18 18:47

    You could try setting up event listeners for the Auth events that are fired.

    You can setup a listener that listens for Illuminate\Auth\Events\Login to handle what you need post login and Illuminate\Auth\Events\Logout for post logout.

    Laravel Docs - Authentication - Events

    0 讨论(0)
  • 2020-12-18 18:48

    Why not simple check for

    if(Auth::check()){
        //your code
    }
    

    Make sure you include use Auth;

    0 讨论(0)
  • 2020-12-18 18:51

    Alief's Answer below works fine as expected. But as i googled through, using the Event Handlers is probably the more preferred way. (It works like custom hooks).

    So without any less respects to Alief's Answer below, let me choose --> this Event Handers approach i just found out.

    Thanks all with regards!

    0 讨论(0)
  • 2020-12-18 18:52

    For the post login, you can do that by modifying App/Http/Controllers/Auth/AuthController.php

    Add authenticated() into that class to override the default one:

    use Illuminate\Http\Request;
    
    protected function authenticated(Request $request, User $user) {
       // put your thing in here
    
       return redirect()->intended($this->redirectPath());
    }
    

    For the logout, add this function into the same class:

    use Auth;
    
    protected function getLogout()
    {
        Auth::logout();
    
        // do something here
    
        return redirect('/');
    }
    
    0 讨论(0)
提交回复
热议问题