Validar token ReCaptcha usando PHP

Tiempo de lectura: < 1 minuto

Hoy os voy a compartir un código para poder validar un Token ReCaptcha con PHP.

Lo primero que haremos es copiar esta función en el archivo dónde queramos validar:

		if (!isset($body["token_recaptcha"])) {
			die("Error no recibe el captcha");
		}
		$recaptcha =  $body["token_recaptcha"];
		$url = 'https://www.google.com/recaptcha/api/siteverify';
		$data = array(
			'secret' => 'SECRET_CODE',
			'response' => $recaptcha,
			'remoteip' => $_SERVER['HTTP_CLIENT_IP']

		);

		$options = array(
			'http' => array(
				'method' => 'POST',
				'content' => http_build_query($data)
			)
		);

		$context  = stream_context_create($options);
		$verify = file_get_contents($url, false, $context);

		$captcha_success = json_decode($verify);

		if ($captcha_success->success) {
	          echo "Captcha OK"
		} else {
	          die("Error validando el captcha");
		}
	}

En este ejemplo pasamos por body JSON el código reCaptcha obtenido y lo validamos.

Sustituye SECRET_CODE por el código secreto obtenido al crear el captcha.

Para enviar la IP remota puedes usar HTTP_CLIENT_IP o HTTP_X_REAL_IP si usas un proxy inverso como NPM

Finalmente valida el token de captcha y permite continuar.

Deja un comentario