在Laravel注册后如何进行身份验证

时间:2020-01-14 15:16:55

标签: php laravel-5

在我的项目中,我试图验证注册信息并在注册时对自己进行身份验证。但是发生的是,当您注册时,您将我发送到“登录”页面,是因为当我单击注册按钮时,您将我发送到了受中间件“ Auth”保护的路由。也就是说,您不在同一注册操作中进行身份验证。

BigQuery

使用先前的功能,系统将数据记录在BD中。但是然后我必须去登录。 (我不想要的东西)

如果我使用laravel默认提供的功能

protected function create(RequestFormRegister $data)
{
    $userCount = User::where(['email'=> $data['email']])->count();
    if($userCount>0){
        return redirect()->back()->with('error', '¡El correo ya existe!');
    }else{
        $user = User::create([
            'nombres' => $data['nombres'],
            'apellidos' => $data['apellidos'],
            'ni' => $data['ni'],
            'role_id' => 2,
            'email' => $data['email'],
            'password' => Hash::make($data['password']),
            'password_confirmation' => Hash::make($data['password_confirmation']),
            'remember_token'=> str_random(15),
        ]);

    }

}

我收到以下错误 enter image description here

这种情况下的解决方案是什么。我正在使用Laravel 5.8和AdminLte作为模板

1 个答案:

答案 0 :(得分:1)

您可以手动登录新创建的用户并将其重定向到首页。

protected function create(RequestFormRegister $data)
{
    $userCount = User::where(['email'=> $data['email']])->count();
    if($userCount>0){
        return redirect()->back()->with('error', '¡El correo ya existe!');
    }else{
        $user = User::create([
            ...
        ]);

      // Manually logging user 
      Auth::login($user);
      return redirect()->route('homepage');

    }

}

https://laravel.com/docs/master/authentication#other-authentication-methods