Как использовать паспорт Laravel с пользовательским столбцом имени пользователя

Теперь я использую что-то подобное для аутентификации пользователя на моем базовом сайте:

if (Auth::attempt($request->only(['id', 'password']))) { // } 

Как я могу изменить этот код для использования пользовательского столбца в качестве имени пользователя? https://laravel.com/docs/5.3/passport#password-grant-tokens

Вы можете использовать метод findForPassport в своей модели пользователя.

Этот метод принимает имя пользователя в качестве аргумента и возвращает модель пользователя

Например:

 class User extends Authenticatable { use HasApiTokens, Notifiable; // ... some code public function findForPassport($username) { return $this->where('id', $username)->first(); } } 

Слишком поздно, чтобы ответить, но мне было трудно это понять, так что ради полноты и, возможно, помочь другим в будущем.

Если вы посмотрите на эту часть кода паспорта, вы увидите, что он также ищет метод validateForPassportPasswordGrant , поэтому, помимо ответа Александра, вы можете аутентифицировать пользователя с помощью настраиваемых полей.

Надеюсь, это поможет кому-то.