メインコンテンツへスキップ
使用する SDK と認証フローによっては、ほとんど、またはまったく追加設定を行わずに、ネイティブアプリケーションに ボット検出 を追加できます。

Auth0.swift と Auth0.Android

を使用している場合、 は、次の SDK バージョンで自動的にサポートされます。
  • Auth0.swift バージョン 1.28.0+
  • Auth0.Android バージョン 1.25.0+
Universal Login を使用していない場合でも ボット検出 はサポートされますが、その場合はアプリケーションを適切に設定する必要があります。
  • アプリケーションでは、requires_verification 例外 (高リスクのログイン試行が検出されたときにスローされます) を処理し、続いて キャプチャ 検証ステップを表示するための WebAuth フローを開始する必要があります。
  • WebAuth フローを開始する際に、ユーザーが username を再入力しなくて済むよう、login_hint パラメーターを渡すことができます。

Auth0.swift の例

アプリケーションで Authentication API を使用してデータベースのログインまたはサインアップを実行する場合は、isVerificationRequired エラーを処理する必要があります。このエラーは、リクエストが不審と判定され、ユーザーの認証に追加の確認手順が必要であることを示します。
この確認手順は Web ベースで実行されるため、完了するには Universal Login を使用する必要があります。
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()
                    // ☝🏼 セッションCookieが残らないようにするため
                    .parameters(["login_hint": email])
                    // ☝🏼 ユーザーが再入力しなくて済むようにするため
                    .start { result in
                        // ...
                    }
            }
        case .failure(let error): // ...
        }
    }
サインアップの場合は、追加のパラメーター を指定して、ユーザーをサインアップページに直接遷移させることができます。 .parameters(["login_hint": email, "screen_hint": "signup"]) Universal Login の設定方法について詳しくは、Auth0.swift Getting Started を参照してください。

Auth0.Android の例

アプリケーションが Authentication API を介してデータベースのログインまたはサインアップを実行する場合は、AuthenticationException#isVerificationRequired() エラーを処理する必要があります。このエラーは、リクエストが不審なものとして判定され、ユーザーのログインには追加の検証手順が必要であることを示します。
この検証手順は Web ベースで行われるため、完了するには Universal Login を使用する必要があります。
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); // ユーザーが再入力しなくて済むように
                    WebAuthProvider.login(account)
                            .withConnection(realm)
                            .withParameters(params)
                            .start(LoginActivity.this, new AuthCallback() {
                                // AuthCallbackインスタンスがすでに定義済みの場合があります

                                @Override
                                public void onFailure(@NonNull Dialog dialog) {
                                    // エラーダイアログが利用可能
                                }

                                @Override
                                public void onFailure(AuthenticationException exception) {
                                    // エラー
                                }

                                @Override
                                public void onSuccess(@NonNull Credentials credentials) {
                                    // WebAuth成功時の処理
                                }
                            });
                }
            }

            @Override
            public void onSuccess(Credentials payload) {
                // API成功時の処理
            }
        });
サインアップの場合は、追加のパラメーターを指定することで、ユーザーをサインアップページに直接遷移させることができます。 params.put("screen_hint", "signup"); Universal Login の設定方法の詳細については、Auth0.Android Authentication with Universal Login SDK documentationを参照してください。

Lock.Swift と Lock.Android

Universal Login を使用している場合、ボット検出は以下の SDK バージョンで自動的にサポートされます。
  • Lock.Swift バージョン 2.19.0 以降
  • Lock.Android バージョン 2.22.0 以降
Universal Login を使用していない場合でもボット検出はサポートされますが、アプリケーション側で適切に設定する必要があります。
  • アプリケーションで requires_verification 例外 (高リスクのログイン試行が検出されたときにスローされます) を処理し、その後、キャプチャ検証ステップを表示するための WebAuth フローを開始する必要があります。
  • WebAuth フローを開始する際に login_hint パラメーターを渡すと、ユーザーがユーザー名を再入力せずに済みます。

Authentication API

Authentication API を直接使用している場合、ボット検出 はサポートされていますが、それに応じてアプリケーションを適切に設定する必要があります。
  • アプリケーションでは、requires_verification エラー (高リスクのログイン試行が検出された場合に Authentication API から返されます) を処理し、その後、キャプチャの検証ステップを表示するために WebAuth フローを開始する必要があります。

詳しく見る