Laravel 5.4 - Disable auto login after registration
If you use default register route you can do it like this...
in RegistersUsers.php
file
comment this line in register
function
$this->guard()->login($user);
I hope this helps you!!
Since your RegisterController
uses RegistersUsers
trait, all of the trait's methods are available to RegisterController
. The method you need to override, in order to prevent users to be logged in after they successfully registered is register()
. Here's the initial body of the method:
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
$this->guard()->login($user);
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}
The line: $this->guard()->login($user);
is where the user gets logged in. You can either remove it or modify it to suit your needs.
how it goes about Laravel 6? I try to do the same thing. However, I don't think, rewritting in /vendor/... folder is good practise. I tried to overwrite function "registered", but when I define a protected function registered(...) {...} in my App/http/Controller/Auth/RegisterController.php I receive an error
Argument 1 passed to App\Http\Controllers\Auth\RegisterController::registered() must be an instance of App\Http\Controllers\Auth\Request, instance of Illuminate\Http\Request given, called in C:\wamp\www\presbyteria\vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php on line 35
I've added Auth::logout();
next to the guard in the new versions.
public function register(Request $request)
{
$this->validator($request->all())->validate();
event(new Registered($user = $this->create($request->all())));
\Auth::logout();
return $this->registered($request, $user)
?: redirect($this->redirectPath());
}