$this->form( $this->makeForm() ->schema([ $this->getLoginFormComponent(), $this->getPasswordFormComponent(), $this->getRememberFormComponent(), Turnstile::make('captcha') ->hidden(!config('turnstile.turnstile_enabled')) ->validationMessages([ 'required' => config('turnstile.error_messages.turnstile_check_message'), ]), ]) ->statePath('data'), ), ]; } protected function throwFailureValidationException(): never { $this->dispatch('reset-captcha'); throw ValidationException::withMessages([ 'data.login' => __('filament-panels::pages/auth/login.messages.failed'), ]); } protected function getLoginFormComponent(): Component { return TextInput::make('login') ->label('Login') ->required() ->autocomplete() ->autofocus() ->extraInputAttributes(['tabindex' => 1]); } protected function getCredentialsFromFormData(array $data): array { $loginType = filter_var($data['login'], FILTER_VALIDATE_EMAIL) ? 'email' : 'username'; return [ $loginType => mb_strtolower($data['login']), 'password' => $data['password'], ]; } }