In my project I am trying to validate that registration information and authenticate myself when I register. But what is happening is that when you register, you send me to the Login page, this happens because when I click on the register button, you send me to a route protected by the Middleware “Auth”. That is, you are not authenticating in the same registration action.
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),
]);
}
}
With the previous function the system records the data in BD. But then I have to go to the login. (Thing I don’t want)
If I use the function that laravel brings by default
protected function create(array $data)
{
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),
]);
}
I get the following error enter image description here
What would be the solution for this case. I am using Laravel 5.8 and AdminLte as a template
Advertisement
Answer
You can manually login the newly created user and redirect it to homepage.
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