> ## 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="/docs/ja-jp/glossary?term=Passwordless">パスワードレス</Tooltip>認証では、ユーザーはメールアドレスまたは電話番号だけでログインできるため、パスワードを覚える必要がなくなり、手間を減らせます。パスワードレス認証はメールまたはSMSで行え、ユーザーにコードを送信することも、コードを含むリンクを送信することもできます。

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

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

パスワードレスでは、2 つのステップがあります。

1. コードをリクエストする
2. コードを入力する

リンクを使う場合も基本的な流れは同じですが、ユーザー自身がコードを入力する必要がないため、少しだけ仕組みが異なります。コードは URL に含まれています。

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

この例では、ユーザーのメールアドレスと接続の種類を指定して `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)
       }
   }
```

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

ユーザーがコードを受け取ったら、それを入力できます。`login` メソッドを呼び出し、ユーザーのメールアドレス、受け取ったコード、および該当する接続名を渡します。成功すると、レスポンスで 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 オーバーロードでは `email` です。     |
