Laravel 5.4 - Disable auto login after registration

南楼画角 提交于 2020-01-14 07:20:10

问题


I need to disable auto login after register an user in laravel 5.4 application. There are enough sources [example] for 5.2 and 5.3 version but it is hard find out a solution for 5.4 version.

In Laravel 5.4 there is no AuthController as it divided to LoginController and RegisterController. Guide me to disable auto login in laravel 5.4.


回答1:


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.




回答2:


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!!




回答3:


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



回答4:


You can change the $redirectTo url in the RegisterController to your url. Or You can override registered method of the RegistersUsers trait in RegisterController.



来源:https://stackoverflow.com/questions/43226145/laravel-5-4-disable-auto-login-after-registration

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!