Смена пользователя в 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';
    }
}

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

Вам нужно использовать попытки авторизации

DsRaj 31.05.2018 12:53

Попытки авторизации где

Mohsin Abbas 31.05.2018 12:54

вы перенаправляете обратно, как этот return Redirect::back();, поэтому он перейдет только к форме входа в систему.

Parth Pandya 31.05.2018 12:55

php artisan make: auth действительно круто: D автоматический вход / регистрация

GaimZz 31.05.2018 13:00

проверьте ответ ниже.

Parth Pandya 31.05.2018 13:59

Почему бы просто не использовать команду php artisan make: auth, а затем переопределить там методы.

TheBAST 01.06.2018 07:05
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
1
6
337
2

Ответы 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']);

Нет, попробовал это решение, он все еще перенаправляет меня на вход из

Mohsin Abbas 31.05.2018 13:03

$ input ['new_user'] Надеюсь, у вас есть идентификатор студента?

DsRaj 31.05.2018 13:08

Да, здесь у меня есть идентификатор того пользователя, на чью учетную запись нужно переключить пользователя \

Mohsin Abbas 31.05.2018 13:09

Сэр, когда я делаю dd(Auth::user()->id);, я получаю идентификатор нового пользователя, на которого мне нужно переключиться, но он всегда перенаправляет обратно в форму входа

Mohsin Abbas 31.05.2018 13:11

вы используете множественную авторизацию?

DsRaj 31.05.2018 13:25

Да, я использую мульти-аутентификацию, одна - это таблица пользователей, а другая - таблица учеников.

Mohsin Abbas 31.05.2018 13:27

@MohsinAbbas Зачем просто создавать role_id, который относится к таблице ролей в таблице пользователей, и просто запрашивать его там. Например, если role_id пользователя равен 1, то это пользователь, а если 2, то он студент. Это был бы самый эффективный подход

TheBAST 01.06.2018 07:08

@ d3cypher, сэр, я просто не могу, потому что база данных предоставляется клиентом, и я просто не могу ничего изменить в базе данных

Mohsin Abbas 01.06.2018 07:31

Что ж, в этом случае вы предоставляете только одну форму / 2 формы входа на основе ваших пользователей.

TheBAST 01.06.2018 09:51

@ d3cypher, сэр, есть 2 формы входа: одна для пользователей, а вторая для студентов.

Mohsin Abbas 01.06.2018 10:19

В этом случае вам будет легко просто использовать Auth :: try

TheBAST 03.06.2018 09:02

if Auth :: try (array $ credentials = [], bool $ Remember = false, bool $ login = true) {// условие здесь} @MohsinAbbas

TheBAST 03.06.2018 10:50

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

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

Нет, он по-прежнему перенаправляет меня обратно в форму входа, а не в панель управления

Mohsin Abbas 01.06.2018 10:18

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