amin3536/laravel-api-user-provider

此包帮助您从不同的服务提供用户(特别适用于微服务)

v1.0.9 2022-08-11 07:54 UTC

README

Latest Version on Packagist Total Downloads tests workflow StyleCI

此包帮助您从不同的服务提供用户(特别适用于微服务)

此包的工作原理

此包在请求头中使用 bearer 令牌,并从安全服务(认证服务)提供用户

安装

通过 Composer

$ composer require amin3536/laravel-api-user-provider

使用方法

简单使用此驱动程序:更改您的 config/auth.php 如下

<?php

return [
    
        //.......
    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    */
    'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],

        'api' => [
            'driver' => 'api-token',
            'provider' => 'users',
        ],

        'admin-api' => [
            'driver' => 'api-token',
            'provider' => 'admins',
        ],
    ],

    /*
    |--------------------------------------------------------------------------
    | User Providers
    |--------------------------------------------------------------------------
    |
    */

    'providers' => [
        'users' => [
            'driver' => 'api-provider',
            'model' => App\Models\User::class,
           //merged with base_url or you can use full path api here  =>https:///api/admin/
            'url' => '/api/v1/user/'
        ],
        'admins' => [
            'driver' => 'api-provider',
            'model' => App\Models\Admin::class,
            'url' => '/api/v1/admin/'
        ],
    ],
     /*
        |--------------------------------------------------------------------------
        | Base url path to to call Auth Service 
        |--------------------------------------------------------------------------
        |
        */
        'base-url'=>'localhost',
        'TimeoutForRequestAuthServer'=>2
    //.......
];

高级

如果您想使用自定义反序列化类,该类必须实现 DeserializerInterface 并在 AuthServiceProvider 的 boot 方法中添加以下代码。

<?php
    //...
    public function boot()
    {

        $this->app->when(ExternalUserProvider::class)
            ->needs(DeserializerInterface::class)
            ->give(function () {
                return new JsonToModel();
            });
    }
    

变更日志

请参阅变更日志以获取有关最近更改的更多信息。

测试

$ composer test

贡献

请参阅contributing.md以获取详细信息及待办事项清单。

安全性

如果您发现任何安全问题,请通过作者邮箱而不是使用问题跟踪器来联系。

致谢

许可

许可。请参阅许可文件以获取更多信息。