Автоматический вход после регистрации в laravel 5.7 - PullRequest
2 голосов
/ 23 июня 2019

Я хочу, чтобы после завершения регистрации он перенаправил меня на страницу панели инструментов (автоматический вход после регистрации).

это код регистрации пользователя:

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 голосов
/ 23 июня 2019

Напишите эту строку перед перенаправлением на панель инструментов:

\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');
    }
0 голосов
/ 23 июня 2019

Привет, если вы создали охрану, запустите этот код после регистрации 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");
}
0 голосов
/ 23 июня 2019

При создании нового пользователя метод 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...