【问题标题】:How to add custom field to laravel passport client model and check it如何将自定义字段添加到 laravel 护照客户端模型并检查它
【发布时间】:2019-05-24 13:52:10
【问题描述】:

Laravel 护照 Client 模型在 oauth_clients 表上有这个字段:

name
secret
redirect
personal_access_client
password_client
revoked

以及如何将我的自定义归档 request_domain_name 添加到客户端凭据中,以便在每次请求时使用此自定义字段值检查请求域名?

【问题讨论】:

    标签: laravel laravel-passport


    【解决方案1】:

    您可以创建单独的迁移

    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
    猜你喜欢
    • 2017-12-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-07
    • 2020-02-10
    • 1970-01-01
    • 2016-12-22
    相关资源
    最近更新 更多