laravel - 护照Laravel的UUID问题
问题描述
我想在 Laravel 护照中使用 UUID 而不是我的 laravel 项目中的默认 id。
我在迁移中将所有user_id
和client_id
列更改为 uuid,并Passport::ignoreMigrations()
在AppServiceProvider
.
当我通过在用户表中创建一个新的原始数据在邮递员中进行测试时,我在响应中得到了令牌,但是当我在安全路由中使用这个令牌时,我总是得到响应状态:
401 Unauthorized 并且在响应正文消息中:未验证。
谁能帮忙,我完全被封锁了
解决方案
我为纠正这个问题所做的事情:
- 在
AppServiceProvider
和register
函数添加:
Passport::ignoreMigrations()
- 跑
php artisan vendor:publish --tag=passport-migrations
CreateOauthAuthCodesTable
改为_
$table->uuid('id');
$table->primary('id');
$table->uuid('user_id')->index();
等等其他护照表和迁移
- 在 appServiceProvider 和 boot 方法中添加以下代码:
use Laravel\Passport\Client;
use Ramsey\Uuid\Uuid;
Client::creating(function (Client $client) {
$client->incrementing = false;
$client->id = \Ramsey\Uuid\Uuid::uuid4()->toString();
});
Client::retrieved(function (Client $client) {
$client->incrementing = false;
});
- 然后我迁移我的表
php artisan migrate:fresh
- 关键是不要忘记添加
protected $primaryKey = 'Id'; // in my case I capitalize id to Id
你在这!
推荐阅读
- svn - 无法在 trac 代码浏览器中查看文件:“错误:没有这样的变更集”
- python - 我对 ANN 的准确性并不完美
- raspbian - PPPD 连接在启动后几秒钟内停止工作
- spring - 如何启用所有 SpringBoot 执行器端点?
- apache-nifi - 如果选择“执行:主节点”,处理器在 Apache NiFi 中不起作用
- javascript - Javascript 使用索引对对象进行排序
- html - BehavorSubject 的订阅者没有发现 chanfes
- python - 在 Python 中使用预主密钥计算 TLS PRF 主密钥
- java - 需要从从 influx db 获取的数据中分离或仅提取值
- c# - 在不使用 GCHandle.Alloc 的情况下将固定长度的缓冲区作为参数传递给函数