我很久以前就为 Nuxt 配置了带有 Passport(密码授予)的 Laravel API,我登录用户没有问题,但现在我需要为特定目的手动创建一个访问令牌。
但是,当我尝试如下所示为用户创建令牌时,出现错误:
$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;
...
}
为了使用
createTokens()
,您需要在数据库上拥有personal access
令牌。
您可以在 DB 上拥有许多用于密码、客户端授权的客户端 IDS。
在你的.env
上写上个人身份/秘密:
PASSPORT_PERSONAL_ACCESS_CLIENT_ID=client-id-value
PASSPORT_PERSONAL_ACCESS_CLIENT_SECRET=unhashed-client-secret-value