Auth0 でアプリケーション登録用のユーザー招待を実装する
Auth0 では、パスワード変更ワークフローを使用してユーザー招待を実装できます。- Universal Login または Classic Login のパスワードリセットページを、ユーザー招待にも対応できるようにスタイル設定することで、パスワード変更リンクを新規ユーザーアカウントへの招待として利用できます。
- 同様に、パスワード変更メールテンプレートをカスタマイズすることで、Auth0 のパスワード変更ワークフローを使ってパスワード変更リンクを生成し、テナントの設定済み SMTP プロバイダーを使用して招待メールを送信できます。
すでに外部のメールソリューションがあり、テナントで SMTP プロバイダーを設定したくない場合は、Management API を使用してパスワード変更チケットを生成し、Auth0 のメールテンプレートやワークフローを使わずに、チケットのリンクを自分でユーザーにメール送信することもできます。
user.app_metadata.needsInvitation という名前) を利用します。これが true の場合、ユーザーには招待用の画面が表示され、それ以外の場合は通常のパスワードリセット画面が表示されます。
- パスワード変更メールテンプレートをカスタマイズする
まず、ユーザー招待とパスワード変更の両方のフローに対応できるように、パスワード変更 (リンク) メールテンプレートをカスタマイズします。
Liquid を使用して、未対応の招待に関するユーザーメタデータのプロパティが設定されているかどうかを確認し、適切なメッセージを送信します。たとえば、次のようになります。
type=invite や type=reset を追加できます。
- パスワードリセットページのスタイルを設定する
テンプレートで設定したクエリパラメータに基づいて、ユーザー招待とパスワード変更の両方のワークフローに対応できるよう、パスワードリセットページのスタイルを設定します。
Universal Login の手順については、Customize Universal Loginを参照してください。Classic Login の手順については、Customize Password Reset Pageを参照してください。
- 招待プロパティを解除するための post-login Action を作成する
ユーザーがパスワードを設定して初回ログインを完了すると、招待は不要になるため、以後はパスワード変更のフローを表示する必要があります。
これに対応するには、user.app_metadata.needsInvitation を false に設定する post-login Action を作成します:
- ユーザー招待を送信する
ユーザー招待を送信するには、ダッシュボードで新しい Auth0 データベースユーザーを作成する か、Management API の Create a User endpoint を使用し、次のように設定します。
-
user.email_verifiedパラメーターをfalseに設定します。 -
user.app_metadata.needsInvitationをtrueに設定します。
詳細はこちら
ユーザーがパスワードを設定した後のリダイレクト先を制御するには、次のように設定します。- Universal Login の場合は、パスワードリセットフローのログインルートをカスタマイズします。
- Classic Login の場合は、メールテンプレートの Redirect To フィールドを設定します。