You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel项目安装Passport执行passport:install出现id字段数据截断报错

报错原因

该报错是oauth_clients表的id字段类型与插入值不匹配导致:Laravel Passport v8及以上版本默认使用UUID作为客户端主键,插入的id值为36位字符串,如果你生成的Passport迁移文件中id字段仍设为自增整型,长度不足以存储UUID,就会触发数据截断报错。
额外说明:php artisan passport:install命令仅负责生成加密密钥、创建默认OAuth客户端,本身不会向users表写入数据,该表无新增记录属于正常现象。

解决方案

你可以选择以下任意一种方式处理:

方案1:调整迁移文件适配UUID主键

  • 找到项目database/migrations目录下Passport生成的迁移文件,打开create_oauth_clients_table.php,将主键定义从$table->id();修改为$table->uuid('id')->primary();
  • 同步修改其他关联表中client_id字段的类型,将unsignedBigInteger改为uuid
  • 执行迁移命令更新表结构:php artisan migrate
  • 重新执行php artisan passport:install即可完成安装

方案2:配置Passport使用自增整型主键

如果你不需要UUID主键,可直接关闭Passport的UUID客户端配置:

  • 打开app/Providers/AppServiceProvider.php,在boot方法中添加以下代码:
use Laravel\Passport\Passport;

public function boot()
{
    // 关闭客户端UUID功能,使用自增ID作为主键
    Passport::enableClientUuid(false);
}
  • 确认oauth_clients表的id字段为默认自增整型
  • 重新执行php artisan passport:install即可完成安装

内容的提问来源于stack exchange,提问作者gjqeriqi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 19:06:06