Skip to main content
認証では、ユーザーはメールアドレスまたは電話番号だけでログインできるため、パスワードを覚える必要による負担を軽減できます。パスワードレス認証はメールまたは SMS で行え、ユーザーに code を送信する方法と、code を含むリンクを送信する方法があります。 パスワードレス認証を使用するには、Auth0.Swift バージョン 1.20.0 以降が必要です。

パスワードレスの仕組み

パスワードレスでは、2 つの手順が必要です。
  1. code をリクエストする
  2. code を入力する
リンクを使用する場合も基本的な流れは同じですが、ユーザー自身が code を入力する必要がないため、少し異なります。code は URL に含まれます。

ステップ 1: code をリクエストする

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

ユーザーが code を受け取ったら、それを入力できます。login メソッドを呼び出し、ユーザーのメールアドレス、受け取った code、対象の接続の名前を渡します。成功すると、レスポンスで Credentials オブジェクトを受け取ります。
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 を使用した場合、呼び出しは次の例のようになります:
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必須(String) 使用する方法に応じて、email または phoneNumber のいずれか一方が必須です (両方は指定できません) 。
phoneNumber必須(String) 使用する方法に応じて、email または phoneNumber のいずれか一方が必須です (両方は指定できません) 。
type任意(String) 使用するパスワードレスのトランザクションの種類です。.Code または .iOSLink を指定します。デフォルトは .Code です。
connection任意(String) パスワードレス認証に使用する接続の名前です。デフォルトは、SMS のオーバーロードでは sms、メールアドレスのオーバーロードでは email です。