Axum
TrustCaptcha – Protection anti-bots

Intégration CAPTCHA Axum

Intégrez TrustCaptcha dans un handler Axum avec quelques lignes de Rust. Stoppez le spam automatisé sur les connexions, inscriptions et formulaires de contact avec une instance TrustCaptcha partagée via le typed state d’Axum et un petit helper async. Hébergé dans l’UE, conforme RGPD et sans énigmes visuelles.

Démarrage rapide

Comment fonctionne l'intégration

1. Créer un CAPTCHA

Créez un compte utilisateur ou connectez-vous avec un compte existant. Ensuite, créez un nouveau CAPTCHA ou sélectionnez-en un existant. Si vous ne savez pas encore si TrustCaptcha vous convient, essayez notre service CAPTCHA sans risque pendant 14 jours gratuitement.

Sur la page d’aperçu du CAPTCHA, vous trouverez toutes les informations importantes, comme la clé de site et la clé de licence, et vous pouvez aussi y créer votre API key. Autorisez simplement vos sites web à utiliser votre CAPTCHA en les ajoutant à la liste des domaines autorisés dans les règles de sécurité du CAPTCHA.

Début du formulaire de création du CAPTCHA.
Règles de sécurité CAPTCHA d’un CAPTCHA de démonstration.

2. Ajouter le widget CAPTCHA dans votre formulaire

Placez le widget TrustCaptcha dans le formulaire HTML servi par votre handler Axum. Le widget s’exécute en arrière-plan et ajoute un champ caché tc-verification-token lors de l’envoi, que axum::extract::Form désérialise dans votre struct.

contact.html
HTML
<script type="module" src="https://cdn.trustcomponent.com/trustcaptcha/3.0.x/trustcaptcha.esm.min.js"></script>

<form method="post" action="/contact">
    <input type="email" name="email" required>
    <trustcaptcha-component sitekey="<your_site_key>"></trustcaptcha-component>
    <button type="submit">Send</button>
</form>

Le widget CAPTCHA s’affichera ensuite dans votre formulaire :

CAPTCHA terminé

Besoin d’informations détaillées sur l’intégration du widget CAPTCHA ?
Pour la référence complète du widget — y compris thèmes, langues, design personnalisé et plus encore — veuillez consulter notre documentation.

Lire la documentation

3. Valider le jeton dans votre handler Axum

Dans votre handler Axum, récupérez le jeton de vérification depuis le formulaire, consultez le résultat via notre crate Rust et décidez si la requête doit être acceptée.

Commencez par installer notre crate Rust TrustCaptcha :

Install
bash
cargo add trustcaptcha@^3.0

Validez ensuite le jeton dans votre handler Axum et agissez en fonction du résultat :

src/main.rs
Rust
use axum::{extract::Form, http::StatusCode, response::IntoResponse};
use serde::Deserialize;
use trustcaptcha::trust_captcha::TrustCaptcha;

#[derive(Deserialize)]
struct ContactForm {
    email: String,
    #[serde(rename = "tc-verification-token")]
    tc_verification_token: String,
}

async fn submit(Form(form): Form<ContactForm>) -> impl IntoResponse {
    let trust_captcha = match TrustCaptcha::builder("<your_api_key>").build() {
        Ok(tc) => tc,
        Err(_) => return (StatusCode::INTERNAL_SERVER_ERROR, "CAPTCHA setup failed.").into_response(),
    };

    let result = match trust_captcha.get_verification_result(&form.tc_verification_token).await {
        Ok(r) => r,
        Err(_) => return (StatusCode::BAD_REQUEST, "CAPTCHA verification failed.").into_response(),
    };

    if !result.verification_passed || result.score > 0.5 {
        return (StatusCode::BAD_REQUEST, "CAPTCHA verification failed.").into_response();
    }

    // CAPTCHA validé — traiter la requête
    (StatusCode::OK, "Thanks!").into_response()
}

Besoin d’informations détaillées sur l’intégration CAPTCHA Axum ?
Pour des instructions détaillées étape par étape — y compris une instance TrustCaptcha partagée via le typed state et un helper verify_token réutilisable — veuillez consulter notre documentation.

Lire la documentation

Un autre framework backend qu’Axum ?
Si vous utilisez un autre framework, choisissez la recette correspondante ici. Si votre framework n’est pas listé, vos développeurs peuvent intégrer la vérification eux-mêmes à l’aide de notre documentation ou contacter notre équipe support pour demander une intégration préconstruite.

4. Félicitations 🎉

Vous êtes maintenant protégé par TrustCaptcha — félicitations !

CAPTCHA terminé

FAQs

Où dans une application Axum a lieu la vérification CAPTCHA ?
Dans le handler async qui reçoit la soumission du formulaire. Bindez le body avec axum::extract::Form<MyForm>, où MyForm porte le jeton CAPTCHA via #[serde(rename = "tc-verification-token")], puis appelez notre crate Rust pour récupérer le résultat de vérification.
Comment partager une seule instance TrustCaptcha entre les handlers ?
Créez-la une seule fois au démarrage, encapsulez-la dans Arc, placez-la dans une struct AppState et attachez-la au router avec .with_state(state). Chaque handler reçoit alors State<AppState> et lit le SDK depuis là — l’Arc rend le clonage peu coûteux.
Dois-je extraire la vérification CAPTCHA dans un extracteur Axum personnalisé ?
C’est tentant, mais FromRequestParts ne voit que les request parts (headers, URI), pas le body de formulaire — et Form<...> consomme le body. Le pattern le plus propre est un petit helper async verify_token(...) appelé depuis chaque handler protégé avec l’opérateur ?.
Le SDK Rust s’adapte-t-il au runtime Tokio d’Axum ?
Oui. Le crate est basé sur async/reqwest, vous awaitez donc l’appel de vérification directement depuis votre async fn handler. Aucun workaround bloquant et aucune astuce de thread pool nécessaires.
Vous perdez des prospects à cause des CAPTCHAs ?

TrustCaptcha bloque le spam et les bots, pas vos clients. Sans puzzle, conforme au RGPD, hébergé en UE.

Début du CAPTCHA
CAPTCHA terminé
UX sans énigmes
Fonctionne en arrière-plan pendant que les visiteurs saisissent leurs informations — ainsi davantage de personnes terminent vos formulaires et moins abandonnent.
Compatible RGPD
Hébergé dans l’UE et conçu dans une logique privacy-first : pas de cookies, transmission chiffrée, nettoyage automatique — avec des ressources juridiques prêtes à l’emploi.
Sécurité multicouche
Une protection adaptative et un scoring de risque intelligent stoppent les abus très tôt — même en cas de pic d’attaques.
Contrôle total
Ajustez la sensibilité, définissez des listes d’autorisation/refus et utilisez le géoblocage — c’est vous qui décidez du niveau de strictesse de la vérification.

Protégez votre application Axum avec TrustCaptcha en quelques étapes !

  • Hébergé en UE & conforme RGPD
  • Aucun puzzle
  • Essai gratuit de 14 jours