Laravel Passport with Password Grant — как получить токен не создавая его? Есть ли готовый метод?

В Laravel есть готовый метод для получения токена без его создания в Laravel Passport с использованием механизма Password Grant. Для этого можно использовать метод attempt класса Auth или auth()->attempt.

Метод attempt принимает два параметра: массив с данными пользователя (обычно email или имя пользователя и пароль) и флаг "запомнить" (по умолчанию false). Он пытается авторизовать пользователя, используя заданные данные. Если пользователь успешно прошел авторизацию, метод возвращает true, иначе - false.

Пример использования метода attempt:

if (Auth::attempt(['email' => $email, 'password' => $password])) {
    // Аутентификация успешна
    $accessToken = auth()->user()->createToken('My Token')->accessToken;
    // получаем токен пользователя и сохраняем его
} else {
   // ошибка аутентификации
}

Вы должны использовать метод createToken на экземпляре модели пользователя, доступной через auth()->user(), чтобы создать токен для авторизованного пользователя. Этот метод создаст токен доступа для пользователя и возвращает его значение.

Пожалуйста, обратите внимание, что перед использованием вам должны быть доступны все необходимые зависимости Laravel Passport, такие как миграции и настройки аутентификации.

Также убедитесь, что у вас есть установленные пакеты Passport и они настроены для использования механизма Password Grant. Это можно сделать, следуя инструкциям в документации Laravel Passport: https://laravel.com/docs/passport