

**Apresentando uma nova experiência de console para AWS WAF**

Agora você pode usar a experiência atualizada para acessar a AWS WAF funcionalidade em qualquer lugar do console. Para obter mais detalhes, consulte [Trabalhando com o console](https://docs.aws.amazon.com/waf/latest/developerguide/working-with-console.html). 

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Manipulando uma resposta CAPTCHA de AWS WAF
<a name="waf-js-captcha-api-conditional"></a>

Esta seção fornece um exemplo de como lidar com uma resposta CAPTCHA.

Uma AWS WAF regra com uma CAPTCHA ação encerra a avaliação de uma solicitação da web correspondente se a solicitação não tiver um token com um carimbo de data/hora CAPTCHA válido. Se a solicitação for uma `GET` text/html chamada, a CAPTCHA ação então serve ao cliente um intersticial com um quebra-cabeça de CAPTCHA. Quando você não integra a JavaScript API CAPTCHA, o intersticial executa o quebra-cabeça e, se o usuário final o resolver com sucesso, reenvia automaticamente a solicitação. 

Ao integrar a JavaScript API CAPTCHA e personalizar o tratamento do CAPTCHA, você precisa detectar a resposta de encerramento do CAPTCHA, fornecer seu CAPTCHA personalizado e, se o usuário final resolver o quebra-cabeça com sucesso, reenviar a solicitação web do cliente. 

O exemplo de código a seguir mostra como fazer isso. 

**nota**  
A resposta da AWS WAF CAPTCHA ação tem um código de status HTTP 405, que usamos para reconhecer a CAPTCHA resposta nesse código. Se seu endpoint protegido usa um código de status HTTP 405 para comunicar qualquer outro tipo de resposta para a mesma chamada, esse código de exemplo também renderizará um quebra-cabeça CAPTCHA para essas respostas. 

```
<!DOCTYPE html>
<html>
<head>
    <script type="text/javascript" src="<Integration URL>/jsapi.js" defer></script>
</head>
<body>
    <div id="my-captcha-box"></div>
    <div id="my-output-box"></div>

    <script type="text/javascript">
    async function loadData() {
        // Attempt to fetch a resource that's configured to trigger a CAPTCHA
        // action if the rule matches. The CAPTCHA response has status=HTTP 405.
        const result = await AwsWafIntegration.fetch("/protected-resource");

        // If the action was CAPTCHA, render the CAPTCHA and return

        // NOTE: If the endpoint you're calling in the fetch call responds with HTTP 405
        // as an expected response status code, then this check won't be able to tell the
        // difference between that and the CAPTCHA rule action response.

        if (result.status === 405) {
            const container = document.querySelector("#my-captcha-box");
            AwsWafCaptcha.renderCaptcha(container, {
                apiKey: "...API key goes here...",
                onSuccess() {
                    // Try loading again, now that there is a valid CAPTCHA token
                    loadData();
                },
            });
            return;
        }

        const container = document.querySelector("#my-output-box");
        const response = await result.text();
        container.innerHTML = response;
    }

    window.addEventListener("load", () => {
        loadData();
    });
    </script>
</body>
</html>
```