仕組み
ユーザーがメールマジックリンクを開くと、Auth0が直接ログインさせます。ワンタイムパスワード(OTP)をメールで受け取り、アプリに戻ってOTPを入力する機能に似ているものの、実際にこの手順を踏む必要はありません。制限事項
メールマジックリンクは、には対応していません。 クラシックログインでメールマジックリンクを利用する際、当初の要求とその応答の両方が同じブラウザで発生することが必要で、これに該当しない場合、トランザクションは失敗します。特に、デフォルトのウェブブラウザを変更できないiOSユーザーにおいてこの影響が顕著にみられます。 例えば、ユーザーが当初の要求をChromeブラウザで行うものの、メールでマジックリンクを開くとiOSは自動的にSafari(デフォルトのブラウザ)でこれを開きます。この場合、トランザクションは失敗します。メールマジックリンクでのクラシックログインフロー

接続を構成する
- Auth0 Dashboardで、[Authentication(認証)] > [Passwordless(パスワードレス)]と移動し、 [Email(メール)] を有効に切り替えてください。
-
[Email(メール)] を選択すると構成ウィンドウが開くので、 [Settings(設定)] ビューに切り替え、メールの [Form(フォーム)] 、 [Subject(件名)] 、 [Message(メッセージ)] テキストを入力します。
Auth0でカスタムのメールテンプレートを送信するには、 From (送信者)の値を「
auth0.com
」が含まれないメールアドレスに変更しなければなりません。メールアドレスを変更しなかった場合、Auth0はデフォルトのメールテンプレートを送信します。 - 生成されるサインインリンクに含めたいあらゆる 認証パラメーター を含めてください。
- サインアップを無効にする かどうかを判断します。この設定を有効にすると、既存ユーザーに対してのみパスワードレスアクセスを許可できるようになるものの、アプリケーションがユーザー名列挙攻撃への脅威にさらされることになります。詳細については、「パスワードレス接続のベストプラクティス」をお読みください。
- [Save(保存)] を選択します。
多言語対応
[Message(メッセージ)] エリアは、多言語に対応しています。 言語を指定するには、Auth0 Authentication API Get CodeまたはLinkエンドポイントを呼び出し、x-request-language
ヘッダーの値を設定します。このヘッダーが設定されていない場合、言語はブラウザによって自動的に設定されるaccept-language
ヘッダーから抽出されます。
メッセージ構文
[Message(メッセージ)] エリアは、Liquid構文を受け付けます。この構文にパラメーターバリューを組み合わせて使え、メッセージの要素をプログラム的に構築できます。 例えば、request_language
パラメーターを参照し、メッセージの言語を変更できます:
パラメーター | 説明 |
---|---|
code | 使用するパスワード。 |
link | 生成されるサインインリンク。 |
application.name | ユーザーがサインアップしているアプリケーションの名前。 |
request_language | メッセージコンテンツに対して要求された言語。 |
operation | APIを介してユーザーのメール更新によってテンプレートがトリガーされたかを示します。トリガーされると値はchange_email になります。トリガーされていない場合はnull です。 |
クラシックログイン設定の更新
アプリケーションでクラシックログインを利用している場合、メールマジックリンクを実装するにはページテンプレートを更新する必要があります。- Auth0 Dashboardで、[Branding(ブランディング)] > [Universal Login(ユニバーサルログイン)] > [Advanced Options(高度なオプション)] へと進みます
- [Login(ログイン)] ビューに切り替え、 [Default Templates(デフォルトのテンプレート)] ドロップダウンから [Lock (passwordless)(ロック(パスワードレス)) を選択します。
-
続いて、コードの
Auth0LockPasswordless
セクションを新しいパラメーターに更新します。passwordlessMethod
をテンプレートに追加してください。 - [Save(保存)] を選択します。