【问题标题】:Laravel Passport createToken method not giving me access_token. How can I solve this problem?Laravel Passport createToken 方法没有给我 access_token。我怎么解决这个问题?
【发布时间】:2021-11-13 08:09:23
【问题描述】:

所有配置都正确,但不起作用。

我的控制器代码是:

 $appUser = User::create([
                'name' => $user->name,
                'email' => $user->email,
                'password' => Hash::make(Str::random(8)),
            ]);

return $passportToken = $appUser->createToken('Token Name')->accessToken;

来自该 URL (http://localhost:8000/api/authorize/github/callback?code=6ba82d59f00fdb1ad5c9) 的响应代码是:

{
  "name": "Token Name",
  "abilities": [
    "*"
  ],
  "tokenable_id": 1,
  "tokenable_type": "App\\Models\\User",
  "updated_at": "2021-09-19T05:10:00.000000Z",
  "created_at": "2021-09-19T05:10:00.000000Z",
  "id": 3
}

【问题讨论】:

  • 您的代码应该可以正常工作,您确定要请求探测器 URL?
  • @MoussabKbeisy,是的
  • @Eahiya 字段accessToken 是否存在于用户表中?你能分享一下用户模型吗?
  • @ThânLƯƠNG 是的,没有 accessToken 列/表 $table->id(); $table->string('name'); $table->string('email')->unique(); $table->timestamp('email_verified_at')->nullable(); $table->string('密码'); $table->rememberToken(); $table->timestamps();

标签: laravel token access-token laravel-passport


【解决方案1】:

默认用户模型使用 Laravel 提供的 HasApiToken\Sanctum\HasApiTokens trait,请检查用户模型,如果它指向 Sanctum,请更新它以使用 Laravel\Passport\ HasApiTokens;

【讨论】:

    【解决方案2】:

    Laravel Passport 使用自己的数据库迁移目录,所以你应该在安装 Laravel Passport 包后迁移你的数据库。 Passport 迁移将创建您的应用程序存储客户端和访问令牌所需的表:

    php artisan migrate
    

    如果你有任何问题,请告诉我。

    【讨论】:

    • 我已经迁移了护照表,但仍然无法正常工作
    • 你是否使用 composer require laravel/passport 安装了 Laravel Passport?
    猜你喜欢
    • 2011-04-29
    • 2013-10-24
    • 1970-01-01
    • 2015-04-07
    • 1970-01-01
    • 2020-09-29
    • 1970-01-01
    • 2021-11-01
    • 2019-04-10
    相关资源
    最近更新 更多