> ## Documentation Index
> Fetch the complete documentation index at: https://translations.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

> Découvrez comment ajouter une protection et une détection contre les bots à vos applications natives qui utilisent Auth0.Swift, Auth0.Android, Lock.Swift et Lock.Android.

# Ajouter la détection des bots aux applications natives

Vous pouvez ajouter la [détection des bots](/fr-CA/docs/secure/attack-protection/bot-detection) à vos applications natives avec peu ou pas de configuration supplémentaire, selon le SDK et le flux d’authentification que vous utilisez.

<div id="auth0swift-and-auth0android">
  ## Auth0.swift et Auth0.Android
</div>

Si vous utilisez <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Universal+Login">Universal Login</Tooltip>, la <Tooltip tip="Universal Login : votre application redirige vers Universal Login, hébergé sur le serveur d’autorisation d’Auth0, pour vérifier l’identité d’un utilisateur." cta="Voir le glossaire" href="/fr-CA/docs/glossary?term=Bot+Detection">détection des bots</Tooltip> est automatiquement prise en charge par les versions de SDK suivantes :

* `Auth0.swift` version 1.28.0+
* `Auth0.Android` version 1.25.0+

Si vous n’utilisez pas Universal Login, la détection des bots est prise en charge, mais vous devez configurer votre application en conséquence :

* Votre application doit gérer l’exception `requires_verification` (qui est levée lorsqu’une tentative de connexion à haut risque est détectée), puis lancer un flux WebAuth pour afficher une étape de vérification par CAPTCHA.
* Lorsque vous lancez le flux WebAuth, vous pouvez transmettre le paramètre `login_hint` pour éviter que l’utilisateur doive saisir de nouveau son nom d’utilisateur.

<div id="auth0swift-example">
  ### Exemple Auth0.swift
</div>

Si votre application effectue une connexion ou une inscription à la base de données au moyen de l’[Authentication API](https://auth0.com/docs/api/authentication), vous devez gérer l’erreur `isVerificationRequired`. Cette erreur indique que la requête a été signalée comme suspecte et qu’une étape de vérification supplémentaire est nécessaire pour authentifier l’utilisateur.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Cette étape de vérification se fait sur le Web; vous devez donc utiliser [Universal Login](/fr-CA/docs/authenticate/login/auth0-universal-login) pour la terminer.
</Callout>

```swift lines expandable theme={null}
Auth0
    .authentication()
    .login(usernameOrEmail: email, 
           password: password, 
           realmOrConnection: connection, 
           scope: scope)
    .start { result in
        switch result {
        case .success(let credentials): // ...
        case .failure(let error) where error.isVerificationRequired:
            DispatchQueue.main.async {
                Auth0
                    .webAuth()
                    .connection(connection)
                    .scope(scope)
                    .useEphemeralSession()
                    // ☝🏼 Sinon, un cookie de session persistera
                    .parameters(["login_hint": email])
                    // ☝🏼 Pour que l'utilisateur n'ait pas à le saisir de nouveau
                    .start { result in
                        // ...
                    }
            }
        case .failure(let error): // ...
        }
    }
```

Dans le cas d’une inscription, vous pouvez ajouter [un paramètre supplémentaire](/fr-CA/docs/authenticate/login/auth0-universal-login) pour rediriger directement l’utilisateur vers la page d’inscription :

`.parameters(["login_hint": email, "screen_hint": "signup"])`

Consultez [Auth0.swift Getting Started](https://github.com/auth0/Auth0.swift#getting-started) pour en savoir plus sur la configuration de Universal Login.

<div id="auth0android-example">
  ### Exemple Auth0.Android
</div>

Si votre application effectue l’inscription ou la connexion à une base de données par l’intermédiaire de l’Authentication API, vous devez gérer l’erreur `AuthenticationException#isVerificationRequired()`. Cette erreur indique que la requête a été signalée comme suspecte et qu’une étape de vérification supplémentaire est nécessaire pour que l’utilisateur puisse se connecter.

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Cette étape de vérification se fait sur le Web; vous devez donc utiliser [Universal Login](/fr-CA/docs/authenticate/login/auth0-universal-login) pour la terminer.
</Callout>

```swift lines expandable theme={null}
final String email = "username@domain.com";
final String password = "a secret password";
final String realm = "my-database-connection";

AuthenticationAPIClient authentication = new AuthenticationAPIClient(account);
authentication.login(email, password, realm)
        .start(new BaseCallback<Credentials, AuthenticationException>() {

            @Override
            public void onFailure(AuthenticationException error) {
                if (error.isVerificationRequired()){
                    Map<String, Object> params = new HashMap<>();
                    params.put("login_hint", email); // Pour que l'utilisateur n'ait pas à le saisir à nouveau
                    WebAuthProvider.login(account)
                            .withConnection(realm)
                            .withParameters(params)
                            .start(LoginActivity.this, new AuthCallback() {
                                // Vous avez peut-être déjà une instance AuthCallback définie

                                @Override
                                public void onFailure(@NonNull Dialog dialog) {
                                    // Boîte de dialogue d'erreur disponible
                                }

                                @Override
                                public void onFailure(AuthenticationException exception) {
                                    // Erreur
                                }

                                @Override
                                public void onSuccess(@NonNull Credentials credentials) {
                                    // Gérer le succès WebAuth
                                }
                            });
                }
            }

            @Override
            public void onSuccess(Credentials payload) {
                // Gérer le succès de l'API
            }
        });
```

Dans le cas d’une inscription, vous pouvez ajouter [un paramètre supplémentaire](/fr-CA/docs/authenticate/login/auth0-universal-login) pour diriger l’utilisateur directement vers la page d’inscription :

`params.put("screen_hint", "signup");`

Consultez la [documentation du SDK Auth0.Android pour l’authentification avec Universal Login](https://github.com/auth0/Auth0.Android#authentication-with-universal-login) pour en savoir plus sur la configuration de Universal Login.

<div id="lockswift-and-lockandroid">
  ## Lock.Swift et Lock.Android
</div>

Si vous utilisez Universal Login, la détection des bots est automatiquement prise en charge par les versions de SDK suivantes :

* `Lock.Swift` version 2.19.0+
* `Lock.Android` version 2.22.0+

Si vous n’utilisez pas Universal Login, la détection des bots est prise en charge, mais vous devez configurer votre application en conséquence :

* Votre application doit gérer l’exception `requires_verification` (qui est levée lorsqu’une tentative de connexion à haut risque est détectée), puis déclencher un flux WebAuth pour afficher une étape de vérification par captcha.
* Lorsque vous déclenchez le flux WebAuth, vous pouvez transmettre le paramètre `login_hint` pour éviter que l’utilisateur ait à saisir de nouveau son nom d’utilisateur.

<div id="authentication-api">
  ## Authentication API
</div>

Si vous utilisez directement l’Authentication API, la fonctionnalité détection des bots est prise en charge, mais vous devez configurer votre application en conséquence :

* Votre application doit gérer l’erreur `requires_verification` (renvoyée par l’Authentication API lorsqu’une tentative de connexion à haut risque est détectée), puis déclencher un flux WebAuth pour afficher une étape de vérification par captcha.

<div id="learn-more">
  ## En savoir plus
</div>

* [Ajouter la détection des bots aux pages de connexion personnalisées](/fr-CA/docs/secure/attack-protection/bot-detection/bot-detection-custom-login-pages)
