繁体   English   中英

在Laravel 5.3中注册后禁用自动登录

[英]Disable Auto Login after registration in Laravel 5.3

请有人帮助我。 如何在laravel 5.3中注册后禁用自动登录。 我可以在5.2中完成,但不能在5.3中完成。

5.3您只需要覆盖寄存器方法。 您可以将以下内容添加到App\\Http\\Controllers\\Auth\\RegisterController

/**
 * Handle a registration request for the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function register(Request $request)
{
    $this->validator($request->all())->validate();

    event(new Registered($user = $this->create($request->all())));

    //The auto login code has been removed from here.

    return redirect($this->redirectPath());
}

此外,您可以更改register方法本身的重定向路径,也可以将$redirectTo属性更新为类的顶部。

希望这可以帮助!

Laravel 5.3中没有AuthController.php。*所以修改你的RegisterController.php并添加这些行

use Illuminate\\Http\\Request; use Illuminate\\Auth\\Events\\Registered;

然后,添加此行以处理上述参数的注册请求

public function register(Request $request)
{
    $this->validator($request->all())->validate();
    event(new Registered($user = $this->create($request->all())));
    return $this->registered($request, $user)
        ?: redirect($this->redirectPath());
}

 $this->guard()->login($user);

在5.3,你需要重写register()的方法RegisterController.php这将是建立用后make:auth命令。 只需评论login()部分:

//$this->guard()->login($user);

RegistersUsers里面有一个功能

protected function registered(Request $request, $user)
{
    if(!$user->active){
        // store msg in session and display to user
        Auth::logout();
    }
}

这是用户注册后立即执行的函数,这里甚至你检查用户是否经过验证以及任何其他代码和Auth :: logout(),这是最好的方法。 无需在其他地方更改任何可能会破坏框架的代码。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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