Skip to main content
Tutorial Free

Laravel Auth: How to disable auto-login after registration?

August 08, 2016
2 min read
Laravel default Auth system is great, but sometimes there's a need that user would register but NOT log in automatically. The problem is that Laravel does auto-login by default after registration. Worry no more, there is a simple solution for that! Let's start with fresh Laravel 5.2 installation and 'php artisan make:auth' command called. Of course this will work in existing projects too! Next, let's create a nice success page: (for the purpose of our tutorial I'm keeping it really simple)
@extends('layouts.app')

@section('content')
    <div class="container">
        <div class="row">
            <div class="col-md-10 col-md-offset-1">
                <div class="alert alert-success">
                    Success! You have registered, please check your email for more instructions!
                </div>
            </div>
        </div>
    </div>
@endsection
* File was saved under /resources/views/success.blade.php Now we add a route, in which user will be met with our success message:
Route::get('/auth/success', [
    'as'   => 'auth.success',
    'uses' => 'Auth\AuthController@success'
]);
And finally - open app/Http/Controllers/Auth/AuthController.php and make these changes: 1. Add new method:
    public function success()
    {
        return view('success');
    }
2. Override 'register' method:
/**
 * Handle a registration request for the application.
 *
 * @param  \Illuminate\Http\Request $request
 * @return \Illuminate\Http\Response
 */
public function register(Request $request)
{
    $validator = $this->validator($request->all());

    if ($validator->fails()) {
        $this->throwValidationException(
            $request, $validator
        );
    }

    $this->create($request->all());

    return redirect(route('auth.success')); // Change this route to your needs
}
  That is it! By overriding AuthController::register() method and changing
Auth::guard($this->getGuard())->login($this->create($request->all()));
to
$this->create($request->all());
in the code - you've disabled auto-login function. Now your users will see a nice success page instead of being logged in directly!

Enjoyed This Tutorial?

Get access to all premium tutorials, video and text courses, and exclusive Laravel resources. Join our community of 10,000+ developers.

Comments & Discussion

No comments yet…

We'd Love Your Feedback

Tell us what you like or what we can improve

Feel free to share anything you like or dislike about this page or the platform in general.