在laravel 5.7中注册后自动登录

时间:2019-06-23 08:33:12

标签: laravel

我想在完成注册后将我重定向到仪表板页面(注册后自动登录)。

这是用户注册代码:

public function store(Request $request)
    {
        $this->validator($request->all())->validate();


        $apprenant = Apprenant::create([
            'nom' => $request['nom'],
            'prenom' => $request['prenom'],
            'email' => $request['email'],
            'niveau' => $request['niveau'],
            'password' => Hash::make($request['password']),

        ]);


            return redirect('/apprenant/dashboard');
    }

但是当我完成注册后,它会将我重定向到登录页面

3 个答案:

答案 0 :(得分:0)

在创建新用户时,create()方法应返回一个新的模型对象。  在重定向到信息中心之前,请使用Auth::loginUsingId($apprenant->id);

public function store(Request $request)
    {
        $this->validator($request->all())->validate();


        $apprenant = Apprenant::create([
            'nom' => $request['nom'],
            'prenom' => $request['prenom'],
            'email' => $request['email'],
            'niveau' => $request['niveau'],
            'password' => Hash::make($request['password']),

        ]);

            Auth::loginUsingId($apprenant->id);
            return redirect('/apprenant/dashboard');
    }

来源 https://laravel.com/docs/5.7/authentication#other-authentication-methods

答案 1 :(得分:0)

在重定向到仪表板之前写以下行:

\Auth::login($apprenant);

或者只是

auth()->login($apprenant);

这意味着,您的代码将如下所示:

public function store(Request $request)
    {
        $this->validator($request->all())->validate();


        $apprenant = Apprenant::create([
            'nom' => $request['nom'],
            'prenom' => $request['prenom'],
            'email' => $request['email'],
            'niveau' => $request['niveau'],
            'password' => Hash::make($request['password']),

        ]);

        //login the user
        \Auth::login($apprenant);

        return redirect('/apprenant/dashboard');
    }

答案 2 :(得分:0)

您好,如果您要创建警卫人员,请在注册后运行此代码 Auth::guard(guard_name)->loginUsingId($id);

//示例

    public function register(Request $req)
{
    $user = new User; // define here your model
    $user->name = $req->name;
    $user->email = $req->email;
    $user->password = Hash::make($req->password);

    if($user->save()){
        Auth::guard(guard_name)->loginUsingId($user->id);
    }

}

//退出登录

public function logout()
{
    Auth::guard('guard_name')->logout();
    return redirect("login_path");
}
相关问题