繁体   English   中英

Laravel Sanctum 创建令牌时出错

[英]Laravel Sanctum Gives Error When Creating Token

我正在尝试设置Sanctum以登录我的Laravel api。 我正在关注文档(也在线交叉引用了其他文章),但是当我尝试使用createToken获取令牌时收到错误消息:

Illuminate\Database\QueryException: SQLSTATE[22007]: Invalid datetime format: 1366 Incorrect integer value: 'd0970066-b343-419a-a348-9d43df3c13b4' for column mydb personal_access_tokens tokenable_id at row 1 (SQL: insert into personal_access_tokens ( name , token , abilities , tokenable_id , tokenable_type , updated_at , created_at ) values (mydevice, 2fde2030c7dcede42cbf76124b77fe0edbbff75fe01ae57ef25a3f582123ee93, ["*"], d0970066-b343-419a-a348-9d43df3c13b4, App\Models \User, 2021-07-12 13:19:17, 2021-07-12 13:19:17)) 在文件 D:\dev\...\vendor\laravel\framework\src\Illuminate\Database\Connection .php 在第 692 行

看来tokenable_id列期望的值与 Sanctum 给出的值不同。 数据库想要一个bigint但正在获取一个string 为什么会这样?


这是迁移文件:

public function up()
    {
        Schema::create('personal_access_tokens', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->morphs('tokenable');
            $table->string('name');
            $table->string('token', 64)->unique();
            $table->text('abilities')->nullable();
            $table->timestamp('last_used_at')->nullable();
            $table->timestamps();
        });
    }

桌子:

在此处输入图像描述

调用此行时发生错误。

return $user->createToken($request->device_name)->plainTextToken;

完整代码 在这里

解决该错误更改

        $table->morphs('tokenable');

对此

        $table->uuidMorphs('tokenable');

希望这会有所帮助,我正在努力解决同样的问题,并且在改变我的工作之后

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM