Защита аутентификации[] не определена

#php #laravel #authentication #laravel-8

Вопрос:

Я использую Laravel 8, и я пытался сделать охранника «мобильным». Я следил за некоторыми учебными пособиями в Интернете, но я не знаю, почему то, что, кажется, работает в этих учебниках, не работает с моей стороны. Я поискал в Интернете, и все, что я мог найти php artisan config:clear , это то, что у меня никогда не получалось.

это код из моего auth.php файла:

     <?php
    
    return [
    
    
        'defaults' => [
            'guard' => 'web',
            'passwords' => 'users',
        ],
    
       
    
        'guards' => [
            'web' => [
                'driver' => 'session',
                'provider' => 'users',
            ],
            'mobile'=> [
                'driver'=>'session',
                'provider'=>'technicians'
            ],
            'api' => [
                'driver' => 'sanctum',
                'provider' => 'users',
                'hash' => false,
            ]
        ],
    
        'providers' => [
            'users' => [
                'driver' => 'eloquent',
                'model' => AppModelsUser::class,
            ],
            'technicians' => [
                'driver' => 'eloquent',
                'model' => AppModelsTechnician::class,
            ]
            // 'users' => [
            //     'driver' => 'database',
            //     'table' => 'users',
            // ],
        ],
    
    
        'passwords' => [
            'users' => [
                'provider' => 'users',
                'table' => 'password_resets',
                'expire' => 60,
                'throttle' => 60,
            ],
            'technicians' => [
                'provider' => 'technicians',
                'table' => 'password_resets',
                'expire' => 60,
                'throttle' => 60
            ]
    
        ],
    
        'password_timeout' => 10800,
    
    ];
 

В моих контроллерах я использую эту строку для аутентификации, что в свою очередь приводит к ошибке:

     Auth::guard('mobile')->attempt(['email'=>'testmail@test.com',password=>'password']);
 

Комментарии:

1. Поделитесь ошибкой, что именно говорит Ларавель? Ты пробовал php artisan cache:clear ? или вы можете удалить php-файлы по адресу root-app/bootstrap/cache/*.php

2. @MohamedGamalEldin InvalidArgumentException Auth guard [mobile] is not defined. , это ошибка, которую я получаю

3. Вы расширили аутентификацию в технической модели? use IlluminateFoundationAuthUser as Authenticatable; class Technician extends Authenticatable {

Ответ №1:

Я нашел источник ошибки. Я использовал phpstorm для автоматической загрузки файлов через ftp на сервер. Итак, я случайно исключил папку конфигурации из списка синхронизируемых папок. так что мой auth.php на самом деле никогда не обновлялся. В противном случае код в порядке