Ajouter la détection des robots aux applications natives
Découvrez comment ajouter une protection et une détection des robots à votre application native qui utilise Auth0.Swift, Auth0.Android, Lock.Swift et Lock.Android.
Use this file to discover all available pages before exploring further.
Vous pouvez ajouter la détection des robots à vos applications natives avec peu ou pas de configuration supplémentaire en fonction de la trousse SDK et du flux d’authentification que vous utilisez.
Si vous utilisez la connexion universelle, la détection des robots est automatiquement prise en charge par les versions des trousses SDK suivantes :
Auth0.swift version 1.28.0+
Auth0.Android version 1.25.0+
Si vous n’utilisez pas la connexion universelle, la détection des robots est prise en charge, mais vous devez configurer votre application en conséquence :
Votre application doit gérer l’exception require_verification (qui est activée lorsqu’une tentative de connexion à haut risque est détectée), puis déclencher un flux WebAuth pour rendre une étape de vérification CAPTCHA.
Lorsque vous déclenchez le flux WebAuth, vous pouvez transmettre le paramètre login_hint pour éviter que l’utilisateur n’ait besoin de saisir à nouveau son nom d’utilisateur.
Si votre application effectue une connexion/inscription à la base de données via l’Authentication API, vous devez gérer l’erreur isVerificationRequired. Cette erreur indique que la demande a été signalée comme suspecte et qu’une étape de vérification supplémentaire est nécessaire pour authentifier l’utilisateur.
Cette étape de vérification est basée sur le web, vous devez donc utiliser Connexion universelle pour l’effectuer.
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() // ☝🏼 Otherwise a session cookie will remain .parameters(["login_hint": email]) // ☝🏼 So the user doesn't have to type it again .start { result in // ... } } case .failure(let error): // ... } }
Dans le cas d’une inscription, vous pouvez ajouter un paramètre supplémentaire pour que l’utilisateur arrive directement sur la page d’inscription :.parameters(["login_hint": email, "screen_hint": "signup"])Lisez Premiers pas avec Auth0.swift pour plus de détails sur la configuration de la connexion universelle.
Si votre application effectue une connexion/inscription à la base de données par le biais de l’Authentication API, vous devez gérer l’erreur AuthenticationException#isVerificationRequired(). Cette erreur indique que la demande a été signalée comme suspecte et qu’une étape de vérification supplémentaire est nécessaire pour connecter l’utilisateur.
Cette étape de vérification est basée sur le web, vous devez donc utiliser Connexion universelle pour l’effectuer.
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); // So the user doesn't have to type it again WebAuthProvider.login(account) .withConnection(realm) .withParameters(params) .start(LoginActivity.this, new AuthCallback() { // You might already have an AuthCallback instance defined @Override public void onFailure(@NonNull Dialog dialog) { // Error dialog available } @Override public void onFailure(AuthenticationException exception) { // Error } @Override public void onSuccess(@NonNull Credentials credentials) { // Handle WebAuth success } }); } } @Override public void onSuccess(Credentials payload) { // Handle API success } });
Si vous utilisez la connexion universelle, la détection des robots est automatiquement prise en charge par les versions des trousses SDK suivantes :
Lock.Swift version 2.19.0+
Lock.Android version 2.22.0+
Si vous n’utilisez pas la connexion universelle, la détection des robots est prise en charge, mais vous devez configurer votre application en conséquence :
Votre application doit gérer l’exception require_verification (qui est activée lorsqu’une tentative de connexion à haut risque est détectée), puis déclencher un flux WebAuth pour rendre une étape de vérification CAPTCHA.
Lorsque vous déclenchez le flux WebAuth, vous pouvez transmettre le paramètre login_hint pour éviter que l’utilisateur n’ait besoin de saisir à nouveau son nom d’utilisateur.
Si vous utilisez directement l’Authentication API, la détection des robots est prise en charge, mais vous devez configurer votre application en conséquence :
Votre application doit gérer l’erreur require_verification (qui est envoyée par l’Authentication API lorsqu’une tentative de connexion à haut risque est détectée), puis déclencher un flux WebAuth pour renvoyer une étape de vérification CAPTCHA.