Как реализовать множественную аутентификацию в люмене с помощью охранников? - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в люмен . Я искал по inte rnet и не нашел правильного ответа, поэтому я отправляю этот вопрос. Я реализовал аутентификацию, и она работает очень хорошо. Теперь проблема в том, что когда я пытаюсь реализовать несколько аутентификаций с помощью промежуточного программного обеспечения Auth Guard, я понятия не имею, как это реализовать.

То, что я до сих пор делал -

раскомментируйте они находятся в bootstrap / app. php

$app->withFacades();
$app->withEloquent();
$app->routeMiddleware(['auth' => App\Http\Middleware\Authenticate::class,]);
$app->register(App\Providers\AppServiceProvider::class);
$app->register(App\Providers\AuthServiceProvider::class);
$app->register(App\Providers\EventServiceProvider::class);

создание контроллера миграции, модели и входа / регистрации для клиента и администратора.

create config / auth. php

<?php

return [

    /*
    |--------------------------------------------------------------------------
    | Authentication Defaults
    |--------------------------------------------------------------------------
    |
    */

    'defaults' => [
        'guard' => env('AUTH_GUARD', 'customer'),
    ],

    /*
    |--------------------------------------------------------------------------
    | Authentication Guards
    |--------------------------------------------------------------------------
    |
    */

    'guards' => [
        'customer' => [
            'driver' => 'token',
            'provider' => 'customers',
        ],
        'admin' => [
            'driver' => 'token',
            'provider' => 'admins',
        ]
    ],

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

    'providers' => [
        'customers' => [
            'driver' => 'eloquent',
            'model' => App\Model\Customer\Customer::class,
        ],
        'admins' => [
            'driver' => 'eloquent',
            'model' => App\Model\Admin\Admin::class,
        ]
    ],

    /*
    |--------------------------------------------------------------------------
    | Resetting Passwords
    |--------------------------------------------------------------------------
    |
    */

    'passwords' => [
        //
    ],

];

Мой поставщик услуг аутентификации

public function boot()
{
  $this->app['auth']->viaRequest('token', function ($request) {
    if ($request->input('api_token')) {
      return Customer::where('api_token', $request->input('api_token'))->first();
    }
  });
}

Если вы заметили, в настоящее время он аутентифицируется только для модели Customer. Неважно, какую охрану я использую. Пожалуйста, дайте мне знать, как сделать это динамически c.

** Я не использую JWT или любой другой драйвер.

...