Я уже давно настроил Laravel API с Passport (Password Grant) для Nuxt, у меня нет проблем с регистрацией пользователей, но теперь мне нужно вручную создать токен доступа для определенной цели.
Однако, когда я пытаюсь создать токен для пользователя, как показано ниже, я получаю сообщение об ошибке:
$user = MyCompany\MyPackage\Models\User::find(123);
$user->createToken('my token')
RuntimeException Personal access client not found. Please create one.
Чего не хватает в моей конфигурации?
Ниже моя модель пользователя:
<?php
namespace MyCompany\MyPackage\Models;
use Illuminate\Contracts\Auth\MustVerifyEmail;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\Facades\Hash;
use Laravel\Passport\HasApiTokens;
class User extends Authenticatable implements MustVerifyEmail
{
use HasApiTokens;
use Notifiable;
...
}
@francisco Нет, я не ... Интерфейс Nuxt отлично работает с API Laravel и Passport, в котором уже хранятся пользовательские токены oauth_access_tokens, которые я могу отозвать с помощью $request->user()->token()->revoke(), что изменит эта команда?
@francisco На самом деле, у меня уже есть идентификаторы клиентов, используемые тремя разными интерфейсами. Использование php artisan passport:client --personal просто создает новый.
Чтобы использовать createTokens(), вам нужно иметь токен personal access в БД. Вы можете иметь на своей БД много клиентских IDS, для (пароль, клиентский грант). проверить вас .env и поставить личный идентификатор/секрет на PASSPORT_PERSONAL_ACCESS_CLIENT_ID=client-id-valuePASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=unhashed-client-secret-value
@francisco Это сработало, спасибо! Но что, если я хочу использовать другой client-id-value?
что я не знаю. Почему вам нужно больше личных токенов в приложении laravel?






Чтобы использовать createTokens(), вам нужно иметь токен personal access в БД, и вы можете использовать команду php artisan passport:client --personal.
У вас может быть в БД много клиентских IDS для пароля, клиентского гранта.
На свой .env поместите личный идентификатор/секрет:
PASSPORT_PERSONAL_ACCESS_CLIENT_ID=client-id-value
PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=unhashed-client-secret-value
ты сделал
php artisan passport:client --personal?