> ## 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.swift：パスワードレス認証

> パスワードレスモードでAuth0.Swiftを使用します

パスワードレス認証は、ユーザーがメールアドレスや電話番号だけでログインできるようにするため、パスワードを覚えておかなければならないという手間を省きます。メールまたはSMSを使ってユーザーにコードを送信するか、コードが含まれるリンクを送信することによって、パスワードレス認証を行うことができます。

パスワードレス認証を使用するには、Auth0.Swiftバージョン`1.20.0`以上が必要です。

## パスワードレスの仕組み

パスワードレスには次の2つの手順が必要です。

1. コードを要求する
2. コードを入力する

リンクを使用する場合でも手順は同じですが、ユーザーが自分でコードを入力する必要がないという点で異なります。コードはURLに含まれています。

### 手順1：コードを要求する

この例では、ユーザーの接続タイプとメールで`startPasswordless`を呼び出して、コードを要求します。`type`パラメーターにはデフォルトの`Code`を指定します。成功時には、コードが送信されたことをユーザーに知らせるメッセージを表示したり、コードを入力する画面にユーザーを導いたりするといいかもしれません。

```swift lines theme={null}
Auth0
   .authentication()
   .startPasswordless(email: "support@auth0.com")
   .start { result in
       switch result {
       case .success:
           print("Sent OTP to support@auth0.com!")
       case .failure(let error):
           print(error)
       }
   }
```

### 手順2：コードを入力する

ユーザーがコードを受け取ったら、入力することができます。`login`メソッドを呼び出して、ユーザーのメール、受け取ったコード、該当する接続の名前を渡します。成功すると、応答で資格情報オブジェクトが返されます。

```swift lines theme={null}
Auth0
   .authentication()
   .login(
       email: "support@auth0.com", 
       code: "123456", 
       audience: "https://myapi.com/api",
       scope: "openid email")
   .start { result in
       switch result {
       case .success(let credentials):
           print("Access Token: \(credentials.accessToken)")
       case .failure(let error):
           print(error)
       }
   }
```

SMSを使用した場合には、以下のように、類似した呼び出しになります。

```swift lines theme={null}
Auth0
   .authentication()
   .login(
       phoneNumber: "+4591131761367", 
       code: "123456", 
       audience: "https://myapi.com/api",
       scope: "openid email")
   .start { result in
       switch result {
       case .success(let credentials):
           print("Access Token: \(credentials.accessToken)")
       case .failure(let error):
           print(error)
       }
   }
```

## パスワードレスパラメーター

パスワードレス認証はさまざまな各種のパラメーターを使って開始できます。

例：

`.startPasswordless(email: String, type: String, connection: String)`

または

`.startPasswordless(phoneNumber: String, type: String, connection: String)`

| パラメーター        | 必須 | 説明                                                                                     |
| ------------- | -- | -------------------------------------------------------------------------------------- |
| `email`       | 必須 | （文字列）使用するメールに応じて、`email`または`phoneNumber`が必要です（どちらか1つ）。                                 |
| `phoneNumber` | 必須 | （文字列）使用するメールに応じて、`email`または`phoneNumber`が必要です（どちらか1つ）。                                 |
| `type`        | 任意 | （文字列）使用するパスワードレストランザクションのタイプ（`.Code`または`.iOSLink`）。デフォルトでは`.Code`に設定されています。            |
| `connection`  | 任意 | （文字列）パスワードレス認証に使用する接続の名前。デフォルトでは、SMSのオーバーロードでは`sms`、メールのオーバーロードでは`email`にそれぞれ設定されています。 |
