Хендлинг имеет слишком много логов - PullRequest
0 голосов
/ 16 октября 2018

Пользователь превысил свой разрешенный максимум попыток входа в систему, будет вводить это по имени пользователя и IP-адресу клиента, который я использую. Я использую черту AuthenticatesUsers. Вы заглянете внутрь упомянутой черты, вы увидите другую черту, которую вытащил ThrottlesLogins..

Auth congfig:

'guards' => [
        'web' => [
            'driver' => 'session',
            'provider' => 'users',
        ],
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
        'admin-web' => [
            'driver' => 'session',
            'provider' => 'admins',
        ],
        'admin-api' => [
            'driver' => 'passport',
            'provider' => 'admins',
        ],
    ],

Authcontroller:

 class AuthController extends Controller
    {

     use ThrottlesLogins;

  public function login(Request $request)
        {
            $method = __FUNCTION__;

            //set validations
            $validator = Validator::make($request->all(), [
                'email' => 'required|string|email',
                'password' => 'required|string|min:6',
            ]);
            if ($validator->fails()) {
                return (new FailedServerResponse($this->controller, $method, $this->errorType['validation'], $validator->errors()))->show();
            }

            $admin = Admin::where('email', $request->email)->first();

            if ( $this->hasTooManyLoginAttempts($request)) {
               $this->fireLockoutEvent($request);
               return $this->sendLockoutResponse($request);
            }

            if (Auth::guard('admin-web')->attempt(['email' => $request->email, 'password' => $request->password, 'is_active' => 1], true)) {
                try {
                    $token = $admin->createToken('register admin')->accessToken;
                } catch (\Exception $e) {
                    return (new FailedServerResponse($this->controller, $method, $this->errorType['token']))->show();
                }

                return $token;
                //success and everything is ok
                $extra = ['token' => $token, 'is_register' => true];
                return (new UserResponse($admin->load('userActivities', 'addresses.city.province', 'wallets', 'userGalleries'), $actionName, $extra))->withPrimaryLayout();

            } else {
                return (new FailedServerResponse($this->controller, $method, $this->errorType['notFound']))->show();
            }
        }

     protected function hasTooManyLoginAttempts(Request $request)
        {
            $attempts = 2;
            $lockoutMinites = 10;
            return $this->limiter()->tooManyAttempts(
                $this->throttleKey($request), $attempts, $lockoutMinites
            );
        }

hasTooManyLoginAttempts не работает.ты можешь мне помочь?

1 Ответ

0 голосов
/ 17 октября 2018

Возможно, проблема в том, что

$this->incrementLoginAttempts($request);

Если попытка входа не удалась, мы увеличим количество попыток входа в систему и перенаправим пользователя обратно в форму входа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...