За последние 24 часа нас посетил 17901 программист и 1655 роботов. Сейчас ищут 934 программиста ...

Проблема с компонентом

Тема в разделе "PHP для новичков", создана пользователем Dimon2x, 30 апр 2018.

  1. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Пробую компонент delight-im/auth
    https://packagist.org/packages/delight-im/auth

    Он работал, до тех пор, пока я не исчерпал лимит попыток зарегистрироваться.
    Я решил убрал этот catch, потому что в доке ничего по этой ошибке не написано и теперь, после отправки данных, вылазит ошибка

    PHP:
    1.   public function register()
    2.     {
    3.       try {
    4.             $this->auth->register($_POST['email'], $_POST['password'], $_POST['username'], function ($selector, $token) {
    5.             });
    6.  
    7.       }
    8.          
    9.         catch (\Delight\Auth\InvalidEmailException $e) {
    10.             echo 'Введите email';
    11.         }
    12.         catch (\Delight\Auth\InvalidPasswordException $e) {
    13.             echo 'Введите пароль';
    14.         }
    15.         catch (\Delight\Auth\UserAlreadyExistsException $e) {
    16.             echo 'Пользователь с таким Email уже существует';
    17.         }
    18.      
    19.          catch (\Delight\Auth\DuplicateUsernameException $e) {
    20.             echo 'Пользователь с таким именем уже существует';
    21.         }
    22.    
    23.         /*
    24.         catch (\Delight\Auth\TooManyRequestsException $e) {
    25.             echo 'Слишком много запросов, подождите некоторое время';
    26.         }
    27.          *
    28.          */
    29.      
    30.          
    31.      
    32.     }
    PHP:
    1. Fatal error: Uncaught Delight\Auth\TooManyRequestsException in
    2.  
    3. C:\OSPanel\domains\crud\vendor\delight-im\auth\src\Auth.php:1759 Stack trace: #0
    4.  
    5. C:\OSPanel\domains\crud\vendor\delight-im\auth\src\Auth.php(231): Delight\Auth\Auth->throttle(Array, 1, 43200, 5, true) #1
    6.  
    7. C:\OSPanel\domains\crud\app\controllers\RegisterController.php(44): Delight\Auth\Auth->register('dima@yandex.ru', '123456', 'Dima', Object(Closure)) #2 [internal function]:
    8.  
    9. App\controllers\RegisterController->register() #3 C:\OSPanel\domains\crud\vendor\php-di\invoker\src\Invoker.php(82): call_user_func_array(Array, Array) #4
    10.  
    11. C:\OSPanel\domains\crud\vendor\php-di\php-di\src\Container.php(269): Invoker\Invoker->call(Array, Array) #5 C:\OSPanel\domains\crud\app\start.php(81):
    12.  
    13. DI\Container->call(Array, Array) #6 C:\OSPanel\domains\crud\web\index.php(6):
    14.  
    15. require('C:\\OSPanel\\doma...') #7 {main} thrown in C:\OSPanel\domains\crud\vendor\delight-im\auth\src\Auth.php on line 1759
    Если сделать так

    PHP:
    1. public function register()
    2.     {
    3.       try {
    4.             $this->auth->register($_POST['email'], $_POST['password'], $_POST['username'], function ($selector, $token) {
    5.             });
    6.  
    7.       }
    8.          
    9.         catch (\Delight\Auth\InvalidEmailException $e) {
    10.             echo $e->getMessage();
    11.         }
    12.         catch (\Delight\Auth\InvalidPasswordException $e) {
    13.              echo $e->getMessage();
    14.         }
    15.         catch (\Delight\Auth\UserAlreadyExistsException $e) {
    16.              echo $e->getMessage();
    17.         }
    18.      
    19.          catch (\Delight\Auth\DuplicateUsernameException $e) {
    20.             echo $e->getMessage();
    21.         }
    22.    
    23.      
    24.         catch (\Delight\Auth\TooManyRequestsException $e) {
    25.             echo $e->getMessage();
    26.         }
    27.      
    28.      
    29.     }
    то вообще ничего не выводит и в базу ничего не добавляет
     
  2. Dimon2x

    Dimon2x Старожил

    С нами с:
    26 фев 2012
    Сообщения:
    2.211
    Симпатии:
    186
    Проблему решил, после того, как очистил таблицу users_throttling

    но это наверно не выход
     
  3. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.593
    Симпатии:
    362
    @Dimon2x, однако, это osclass с плагином а-ля "Limit osclass login / throttling login attempts".
    Следовательно, в админке должны быть настройки плагина... типа - времени до снятия блокировки, времени между попытками логина/регистрации...