Я новичок в люмен . Я искал по 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 или любой другой драйвер.