【发布时间】:2019-05-24 13:52:10
【问题描述】:
Laravel 护照 Client 模型在 oauth_clients 表上有这个字段:
name
secret
redirect
personal_access_client
password_client
revoked
以及如何将我的自定义归档 request_domain_name 添加到客户端凭据中,以便在每次请求时使用此自定义字段值检查请求域名?
【问题讨论】:
Laravel 护照 Client 模型在 oauth_clients 表上有这个字段:
name
secret
redirect
personal_access_client
password_client
revoked
以及如何将我的自定义归档 request_domain_name 添加到客户端凭据中,以便在每次请求时使用此自定义字段值检查请求域名?
【问题讨论】:
您可以创建单独的迁移
php artisan make:migration alter_oauth_clients_table_request_domain_name --table=oauth_clients
并在您的迁移中定义新列
Schema::table('oauth_clients', function (Blueprint $table) {
$table->string('request_domain_name');
});
之后,您可以扩展Client 模型并将request_domain_name 列添加到fillable 属性,然后您就可以检查它了。
class Client extends \Laravel\Passport\Client
{
protected $fillable = [
'name',
'secret',
'redirect',
'personal_access_client',
'password_client',
'revoked',
'request_domain_name',
];
}
【讨论】:
request_domain_name 以便在对 API 的每个请求中检查它?使用我的 API 作为客户端的用户不会在每个请求上附加域名。我必须检查从全局变量$_SERVER 获取的请求域名并检查客户端request_domain_name 值。我在哪里可以做到? @Tarasovych
Request 对象获取域。
Client时,插入request_domain_name
vendor\laravel\passport\src\PersonalAccessTokenFactory.php 中创建的客户端请求,然后使用此代码$psr = $this->server->validateAuthenticatedRequest($psr); 使用方法validateAuthenticatedRequest() 进行验证
request_domain_name?