Как использовать другое поле для аутентификации в Laravel? - PullRequest
0 голосов
/ 02 апреля 2020

В руководстве я могу прочитать:

По умолчанию Laravel использует поле электронной почты для аутентификации. Если вы хотите настроить это, вы можете определить метод username на вашем LoginController

Однако в моем случае я хотел бы использовать поле unique_id, предоставленное моей компанией. аутентифицировать моего пользователя. Это поле не является именем пользователя, поэтому мне не нравится метод username(), чтобы получить это. Есть ли другой способ указать Laravel аутентификации использовать что-то другое, чем email для аутентификации моих пользователей?

Ответы [ 3 ]

1 голос
/ 02 апреля 2020

Вы можете переопределить validateLogin и credentials методы в вашем Auth / LoginController

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

protected function credentials(Request $request)
{
    return array_merge($request->only('unique_id', 'password'));
}
1 голос
/ 02 апреля 2020

Игнорировать тот факт, что метод называется username() и go для него.

0 голосов
/ 02 апреля 2020

Вы можете перезаписать username() метод в App\Http\Controllers\Auth\LoginController::class следующим образом:

/**
* Get the login username to be used by the controller
* You Username will be User $unique_id
*/
public function username()
{
    return 'unique_id'
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...