Как пройти аутентификацию после регистрации в Laravel - PullRequest
0 голосов
/ 14 января 2020

В моем проекте я пытаюсь подтвердить эту регистрационную информацию и идентифицировать себя при регистрации. Но происходит то, что когда вы регистрируетесь, вы отправляете меня на страницу входа в систему, это происходит потому, что когда я нажимаю кнопку регистрации, вы отправляете меня на маршрут, защищенный промежуточным программным обеспечением «Auth». То есть вы не проходите аутентификацию в том же действии регистрации.

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),
        ]);

    }

}

С предыдущей функцией система записывает данные в BD. Но тогда я должен go для входа в систему. (Вещь, которую я не хочу)

Если я использую функцию, которую laravel приносит по умолчанию

 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),
    ]);

}

, я получаю следующую ошибку введите описание изображения здесь

Каково было бы решение для этого случая. Я использую Laravel 5.8 и AdminLte в качестве шаблона

1 Ответ

1 голос
/ 15 января 2020

Вы можете вручную войти в систему только что созданного пользователя и перенаправить его на домашнюю страницу.

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-method

...