Переключение пользователя в laravel 5.4 - PullRequest
0 голосов
/ 31 мая 2018

Я переключаю пользователей в 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 ]

0 голосов
/ 31 мая 2018

Добавьте это в начало файла: - 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');   
}

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

0 голосов
/ 31 мая 2018

Отредактировано

Вы можете войти с помощью

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']);
...