メインコンテンツへスキップ
通常のWebアプリケーションで埋め込み型パスワードレスAPIを使用するには、[Auth0 Dashboard]>[Applications(アプリケーション)]>[Applications(アプリケーション)]に移動して、アプリケーション設定の [Advanced Settings(高度な設定] > [Grant Types(付与タイプ)] OTP(パスワードレスOTP)] の付与を有効にしなければなりません。 通常のWebアプリケーションのパスワードレス認証は、2つのステップで構成されています。
  1. アプリケーションでユーザーIDを取得し(ユーザーのメールまたは電話番号)、 /passwordless/startエンドポイントを呼び出し、パスワードレスフローを開始します。ユーザーは、1回限り使用できるコードまたはマジックリンクが記載されたメール、SMSを受け取ります。
  2. マジックリンクを送信しなかった場合は、1回限り使用できるコードの使用をユーザーに促し、認証トークンを取得するために/oauth/tokenエンドポイントを呼び出します。
マジックリンクを使用する場合は、/oauth/tokenを呼び出す必要がないことに注意してください。ユーザーは、マジックリンクをクリックすると、アプリケーションのコールバックURLにリダイレクトされます。 以下に、様々なシナリオに対して、これらのAPIエンドポイントを呼び出すために使用できるコードスニペットをいくつか挙げます。バックエンド技術用のAuth0 SDK(たとえば、Java、.NET、Ruby、PHP、Python、 Node JS)は、これらのエンドポイントに対応するように更新されていないため、直接呼び出す必要があります。 メールで一回限り使用できるコードを送信する
curl --request POST \
  --url 'https://{yourDomain}/passwordless/start' \
  --header 'content-type: application/json' \
  --data '{"client_id": "{yourClientId}", "client_secret": "{yourClientSecret}", "connection": "email", "email": "{userEmail}","send": "code"}'
メールでマジックリンクを送信する send: linkを指定する必要があります。
curl --request POST \
  --url 'https://{yourDomain}/passwordless/start' \
  --header 'content-type: application/json' \
  --data '{"client_id": "{yourClientId}", "client_secret": "{yourClientSecret}", "connection": "email", "email": "{userEmail}","send": "link"}'
SMSで一回限り使用できるパスワードを送信する
curl --request POST \
  --url 'https://{yourDomain}/passwordless/start' \
  --header 'content-type: application/json' \
  --data '{"client_id": "{yourClientId}", "client_secret": "{yourClientSecret}", "connection": "sms", "phone_number": "{userPhoneNumber}","send": "code"}'
SMSユーザーを認証する
curl --request POST \
  --url 'https://{yourDomain}/oauth/token' \
  --header 'content-type: application/json' \
  --data '{"grant_type": "http://auth0.com/oauth/grant-type/passwordless/otp", "client_id": "{yourClientId}", "client_secret": "YOUR_CLIENT_SECRET", "username": "USER_PHONE_NUMBER", "otp": "code", "realm": "sms", "audience": "your-api-audience","scope": "openid profile email"}'
メールユーザーを認証する
curl --request POST \
  --url 'https://{yourDomain}/oauth/token' \
  --header 'content-type: application/json' \
  --data '{"grant_type": "http://auth0.com/oauth/grant-type/passwordless/otp", "client_id": "{yourClientId}", "client_secret": "{yourClientSecret}", "username": "{userPhoneNumber}", "otp": "code", "realm": "email", "audience": "your-api-audience", "scope": "openid profile email"}'
マジックリンクを通してユーザーを認証する マジックリンクを送信する場合、ユーザーを認証するためにAPIを呼び出す必要はありません。ユーザーはリンクをクリックすると、コールバックURLにリダイレクトされます。

レート制限目的でauth0-forwarded-forヘッダーを設定する

/passwordless/startエンドポイントは、IPごとに一時間に50要求のレート制限があります。サーバー側からAPIを呼び出す場合、バックエンドのIPがこのレート制限にすぐに達する可能性があります。この問題の対処方法については、「パスワードレスAPIの使用」のパスワードレスエンドポイントのレート制限のセクションをご覧ください。
I