[英]Laravel 5.4 - Disable auto login after registration
在laravel
5.4 应用程序中注册用户后,我需要禁用自动登录。 5.2 和 5.3 版本有足够的来源 [ example ],但很难找到 5.4 版本的解决方案。
在 Laravel 5.4 中没有AuthController
因为它分为LoginController
和RegisterController
。 指导我在 laravel 5.4 中禁用自动登录。
由于您的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);
是用户登录的地方。您可以删除它或修改它以满足您的需要。
如果您使用默认注册路由,您可以这样做...
在RegistersUsers.php
文件中
在register
函数中注释这一行
$this->guard()->login($user);
我希望这可以帮助你!!
Laravel 6 怎么样? 我尝试做同样的事情。 但是,我不认为,在 /vendor/... 文件夹中重写是一种很好的做法。 我试图覆盖函数“registered”,但是当我在 App/http/Controller/Auth/RegisterController.php 中定义受保护的函数 Registration(...) {...} 时,我收到一个错误
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
我添加了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());
}
您可以将RegisterController
的$redirectTo
url
更改为您的网址。 或者您可以覆盖registered
的方法RegistersUsers
的特质RegisterController
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.