我需要在laravel
5.4应用程序中注册用户后禁用自动登录。 5.2和5.3版本有足够的源[example],但很难找到5.4版本的解决方案。
在Laravel 5.4中,没有AuthController
因为它分为LoginController
和RegisterController
。指导我在laravel 5.4中禁用自动登录。
答案 0 :(得分:24)
由于您的RegisterController
使用RegistersUsers
特征,RegisterController
可以使用所有特征的方法。您需要覆盖的方法是为了防止用户在成功注册后登录register()
。这是方法的初始主体:
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());
}
行:$this->guard()->login($user);
是用户登录的位置。您可以删除它或修改它以满足您的需求。
答案 1 :(得分:2)
如果您使用默认注册路由,则可以这样...
在RegistersUsers.php
文件中
在register
函数中注释此行
$this->guard()->login($user);
希望对您有帮助!
答案 2 :(得分:1)
在新版本中,我已经在卫队旁边添加了Auth::logout();
。
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());
}
答案 3 :(得分:0)
Laravel 6怎么样? 我尝试做同样的事情。但是,我不认为在/ vendor / ...文件夹中进行重写是一种很好的做法。 我试图覆盖“已注册”功能,但是当我在App / http / Controller / Auth / RegisterController.php中定义一个已注册的受保护功能(...){...}时,我会收到错误
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 :(得分:-3)
您可以将$redirectTo
中的url
RegisterController
更改为您的网址。
或者您可以覆盖registered
中RegistersUsers
特征的RegisterController
方法。