Как добавить user_id к параметру входа в Laravel? - PullRequest
0 голосов
/ 29 июня 2018

Ниже приведен некоторый метод в черте AuthenticatesUsers, где Illuminate\Foundation\Auth, Laravel.

   ...
    protected function validateLogin(Request $request)
    {
        $this->validate($request, [
            $this->username() => 'required|string',
            'password' => 'required|string',
        ]);
    }

   ...

    public function username()
    {
        return 'email';
    }

Первоначально моя цель - создать еще одну форму входа с user_id и паролем на мобильном устройстве, чтобы проверить Auth () и, в случае успеха, сработать каким-либо методом и автоматически выйти из системы после этого. не могли бы вы дать мне подробный совет?

Дополнительный вопрос.

как Jaskaran Singh's совет Я добавил его также, как показано ниже.

protected function authenticated(Request $request, $user)
{
    if($request->Inn == 'Inn') {
        return redirect()->route('mobiles_start', ['Inn' => 'Inn']);
    }

    elseif($request->Ut == 'Ut') {
        return redirect()->route('mobiles_destroy', ['Ut' => 'Ut']);
    }

    return view('welcome');
}

, но если вход не выполнен, то он перенаправляется обратно на страницу /login вместо ожидаемой страницы просмотра, предварительно определенной в маршруте (mobiles_start и mobiles_destroy) выше. Как я мог это сделать?

Ответы [ 2 ]

0 голосов
/ 29 июня 2018

в app / Http / Controllers / Auth / LoginController.php добавьте следующие функции, это переопределит функции по умолчанию в признаке AuthenticatesUsers.

функция добавления имени пользователя ()

public function username()
{
    if(request('id')){
        return 'id'; // if request contains id then return it
    }
    return 'email'; // else return email
}

добавить функцию validateLogin ()

protected function validateLogin(Request $request)
{
    $this->validate($request, [
        $this->username() => 'required', //remove |string
        'password' => 'required|string',
    ]);
}

вот и все.

0 голосов
/ 29 июня 2018

Вы можете войти в систему с идентификатором пользователя, как это:

if(Auth::loginUsingId($user->id)){
    return response()->json(['success' => $user], $this->successStatus);
}

Вам не нужно расширять базовую черту или какой-либо основной код Laravel.

...