繁体   English   中英

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

[英]Laravel 5.4 - Disable auto login after registration

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

在 Laravel 5.4 中没有AuthController因为它分为LoginControllerRegisterController 指导我在 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM