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

# Auth0.Androidパスワードレス認証

> パスワードレス接続でAuth0.Androidを使う方法

<Warning>
  2017年6月8日以降、新規テナントでは、ネイティブアプリケーションから行うパスワードレス認証がデフォルトで無効になります。代わりに、ユニバーサルログインを使用してWeb認証を行うことが推奨されています。引き続き利用したい場合は、まずダッシュボードで［MFA Grant Type（MFA付与タイプ）］を有効にする必要があります。詳細については、「[アプリケーションの付与タイプ](/docs/ja-jp/get-started/applications/application-grant-types)」を参照してください。
</Warning>

パスワードレス認証は、メールまたはSMSを介して、ユーザーにコードを送信するか、コードを含むリンクを送信することで行えます。パスワードレス認証のすべての方法で、確認のためのコードの要求とコードの入力という、2つのステップが必要になります。

## Android SDKをセットアップする

最初に[Android SDKをセットアップ](/docs/ja-jp/libraries/auth0-android)して、以下のパスワードレスメソッドを使えるようにします。

## Auth0とAndroid SDKを構成する

<Callout icon="file-lines" color="#0EA5E9" iconType="regular">
  Passwordless APIを使用するには、Auth0 Android SDKのバージョン1.20以降を使って設定する必要があります。
</Callout>

ネイティブクライアントのパスワードレスAPIを使用するには、 **［Dashboard］>［Applications（アプリケーション）］>（自身のアプリケーション）>［Settings（設定）］>［Advanced Settings（詳細設定）］>［Grant Types（付与タイプ）］** に移動して、アプリケーションのパスワードレスOTP付与を有効にします。

## コードを要求する

この例では、ユーザーのメールアドレス、`PasswordlessType.CODE`、接続名をパラメーターとして`passwordlessWithEmail`を呼び出すことで、コードを要求します。成功したら、ユーザーにコードが届くことを知らせると共に、そのコードを入力する場所にユーザーを誘導すると良いでしょう。

```kotlin lines theme={null}
authentication
    .passwordlessWithEmail("username@domain.com", PasswordlessType.CODE, "my-passwordless-connection")
    .start(object: Callback<Void?, AuthenticationException>() {
        override fun onSuccess(result: Void?) {
            // Code sent!
        }

        override fun onFailure(error: AuthenticationException) {
            // Error!
        }
    })
```

`passwordlessWithSms`メソッドを使用して、SMSを使ったコード送信を行えます。

## コードを入力する

ユーザーはコードを受け取ると、入力することができます。`loginWithEmail`メソッドを呼び出し、ユーザーのメール、受信したコード、および当該の接続名と共に渡します。成功すると、応答で`Credentials`オブジェクトを受信します。

```kotlin lines theme={null}
authentication
    .loginWithEmail("username@domain.com", "123456", "my-passwordless-connection")
    .start(object: Callback<Credentials, AuthenticationException>() {
        override fun onSuccess(result: Credentials) {
            // Logged in!
        }

        override fun onFailure(error: AuthenticationException) {
            // Error!
        }
    })
```

`loginWithSms`メソッドを使って、SMSで受信したコードを送信し、ユーザーを認証することができます。

デフォルトで使用されるスコープは、`openid profile email`です。
