[英]Installed Laravel sanctum but faced an error during creating token
[英]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 intopersonal_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.