> ## 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.

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

# Auth0.swift: パスワードレス認証

<Tooltip tip="パスワードレス: 第1要素としてパスワードに依存しない認証方式です。" cta="用語集を表示" href="/ja/docs/glossary?term=Passwordless">パスワードレス</Tooltip>認証では、ユーザーはメールアドレスまたは電話番号だけでログインできるため、パスワードを覚える必要による負担を軽減できます。パスワードレス認証はメールまたは SMS で行え、ユーザーに code を送信する方法と、code を含むリンクを送信する方法があります。

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

<div id="how-passwordless-works">
  ## パスワードレスの仕組み
</div>

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

1. code をリクエストする
2. code を入力する

リンクを使用する場合も基本的な流れは同じですが、ユーザー自身が code を入力する必要がないため、少し異なります。code は URL に含まれます。

<div id="step-1-request-the-code">
  ### ステップ 1: code をリクエストする
</div>

この例では、ユーザーのメールアドレスと接続の種類を指定して `startPasswordless` を呼び出し、code をリクエストします。`type` パラメーターのデフォルト値は `Code` です。成功したら、通常は code を送信したことをユーザーに通知し、必要に応じてその 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)
       }
   }
```

<div id="step-2-input-the-code">
  ### ステップ 2: code を入力する
</div>

ユーザーが code を受け取ったら、それを入力できます。`login` メソッドを呼び出し、ユーザーのメールアドレス、受け取った code、対象の接続の名前を渡します。成功すると、レスポンスで Credentials オブジェクトを受け取ります。

```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)
       }
   }
```

<div id="passwordless-parameters">
  ## パスワードレスのパラメータ
</div>

パスワードレス認証は、さまざまなパラメータを指定して開始できます。

例:

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

または

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

| **パラメータ**     | **必須** | **説明**                                                                                   |
| ------------- | ------ | ---------------------------------------------------------------------------------------- |
| `email`       | 必須     | (String) 使用する方法に応じて、`email` または `phoneNumber` のいずれか一方が必須です (両方は指定できません) 。                |
| `phoneNumber` | 必須     | (String) 使用する方法に応じて、`email` または `phoneNumber` のいずれか一方が必須です (両方は指定できません) 。                |
| `type`        | 任意     | (String) 使用するパスワードレスのトランザクションの種類です。`.Code` または `.iOSLink` を指定します。デフォルトは `.Code` です。      |
| `connection`  | 任意     | (String) パスワードレス認証に使用する接続の名前です。デフォルトは、SMS のオーバーロードでは `sms`、メールアドレスのオーバーロードでは `email` です。 |
