Passport laravel createToken 未找到个人访问客户端

Passport laravel createToken Personal access client not found

设置通行证后,我配置并创建了一个控制器来管理注册-登录-和-访问一般外部 post 请求的资源。我不需要特定的客户。但是当我尝试在注册或登录中创建令牌时:

$tokenObj=$user->createToken('APPLICATION')->accessToken;

错误是:

RuntimeException: Personal access client not found. Please create one. in file C:\xampp7.1\htdocs\passport\vendor\laravel\passport\src\ClientRepository.php on line 94 Stack trace: 1. RuntimeException->() C:\xampp7.1\htdocs\passport\vendor\laravel\passport\src\ClientRepository.php:94 2. Laravel\Passport\ClientRepository->personalAccessClient() C:\xampp7.1\htdocs\passport\vendor\laravel\passport\src\PersonalAccessTokenFactory.php:71

我该如何解决?

您必须先创建访问客户端。它被记录在案 here。一个访问客户端与用户令牌不同,您可以有一个访问客户端和许多使用不同密码和令牌的用户。

对我来说,运行

解决了
php artisan passport:install

因为它是在我刷新数据库后发生的。

除了namelivia的评论。正如 Laravel 医生所说:

Before your application can issue personal access tokens, you will need to create a personal access client. You may do this using the passport:client command with the --personal option. If you have already run the passport:install command, you do not need to run this command:

php artisan passport:client --personal

但是如果你没有运行命令:

php artisan passport:install

你应该先 运行 它。

在 运行 命令之后

php artisan passport:client --personal

并给你这个提示

 What should we name the personal access client? [Artisan Personal Access Client]:

不用担心,只需输入任何名称并按回车键即可。

只需运行这个命令

php artisan passport:install --force

我一遍又一遍地遇到同样的错误,但我不知道如何重现它,但我想出了原因。 当您执行 php artisan passport:install 时,它会在 migrate 命令之后将两个客户端 ID 存储在数据库中,但是如果您再次 fresh migrate,很明显你会丢失之前的两个 ID,这就是执行安装命令后显示此错误的原因。

更新 php artisan passport:install -f 将强制为新迁移的数据库重新创建 ID。

我应该打电话吗

php artisan passport:install

每次我运行

php artisan:migrate

有正确的方法吗?