Laravel 5.4 - 注册后禁用自动登录

时间:2017-04-05 08:41:58

标签: php laravel laravel-5.4

我需要在laravel 5.4应用程序中注册用户后禁用自动登录。 5.2和5.3版本有足够的源[example],但很难找到5.4版本的解决方案。

在Laravel 5.4中,没有AuthController因为它分为LoginControllerRegisterController。指导我在laravel 5.4中禁用自动登录。

5 个答案:

答案 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更改为您的网址。 或者您可以覆盖registeredRegistersUsers特征的RegisterController方法。