Laravel Passeport меняет аутентификацию электронной почты пользователя на имя пользователя

Я создаю приложение Laravel как API, используя React. Я хочу изменить поле аутентификации по умолчанию "электронная почта" на поле "имя пользователя" при использовании Oauth предоставления паспорта. как лучше всего это сделать, не меняя трейта Laravel AuthenticatesUser.

1 ответ

Решение

В вашей модели пользователя вы можете добавить следующий метод для входа по имени пользователя вместо электронной почты:

/**
 * Find the user instance for the given username.
 *
 * @param  string  $username
 * @return \App\User
 */
public function findForPassport($username)
{
    return $this->where('username', $username)->first();
}

https://laravel.com/docs/7.x/passport

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