Переключение пользователя в laravel 5.4

Я переключаю пользователей в laravel, и мне это тоже удалось, но дело в том, что когда я перенаправляю пользователя на панель мониторинга после успешного входа в систему, он перенаправляет в форму входа, вместо этого я не знаю, что я делаю неправильно. Вот код, который я использую.

public function user_reauthenticate(Request $request) {
    $input = Input::all();
    $data = User::where('email', $input['email'])->first();
    if ($data) {
        if (Hash::check($input['password'], $data->password)) {
            Session::put('email', $input['email']);
            $newuser = Student::find($input['new_user']);
            session(['orig_user' => $data->id]);
            Auth::login($newuser);
            return Redirect::back();
        } else {
            $response = 'Wrong Credentials';
        }
    } else {
        $response = 'User does not exist';
    }
}

Может ли кто-нибудь помочь мне выяснить проблему заранее спасибо.

2 ответа

отредактированный

Вы можете войти через

Auth::loginUsingId(1);

Новый отредактированный

// If you have the guard student and multiple auth
$auth = auth()->guard('student');
$objAuth = $auth->loginUsingId($input['new_user']);

//Single Auth

$objAuth = Auth::loginUsingId($input['new_user']);

Добавьте это к вашей верхней части файла:- use Illuminate\Foundation\Auth\AuthenticatesUsers;

Затем добавьте if Функция как ниже в вашем уже завершенном коде:-

public function user_reauthenticate(Request $request)
{
     use AuthenticatesUsers;
     $input = Input::all();
     $data = User::where('email', $input['email'])->first();
     if ($data) {
     if (Hash::check($input['password'], $data->password))
     {
        Session::put('email', $input['email']);
        $newuser = Student::find($input['new_user']);
        session(['orig_user' => $data->id]);
        Auth::login($newuser);
        if ($this->attemptLogin($request))
        {
             return $this->sendLoginResponse($request);
        }
     }
     else
     {
          $response = 'Wrong Credentials';
     }
 }
     else
     {
          $response = 'User does not exist';
     }
}

После этого метода переопределите этот метод следующим образом:

protected function authenticated(Request $request, $user)
{   
    return redirect()->route('dashboard');   
}

Проверьте, называется ли ваш маршрут панели мониторинга панелью мониторинга или нет.

Другие вопросы по тегам