メインコンテンツへスキップ
組織にユーザーを招待する方法をお探しの場合は、代わりに 組織メンバーを招待する を参照してください。
Auth0 アプリケーションでサインアップを管理する方法の 1 つが、ユーザー招待です。 一般的なユーザー招待のワークフローでは、アプリケーション管理者が新しいユーザーアカウントを作成し、アクティベーションリンクを含む招待メールをユーザーに送信します。ユーザーはそのリンクを開くと、アカウントのパスワードを設定し、その後ログインできます。 ユーザー招待システムは、サインアップを制限したい場合や、アカウントを一括で作成する場合に役立ちます。

Auth0 でアプリケーションのサインアップ向けユーザー招待を実装する

Auth0 では、パスワード変更ワークフローを使ってユーザー招待を実装できます。
  • Universal Login または Classic Login のパスワードリセットページを、ユーザー招待にも対応するようにスタイル調整することで、パスワード変更リンクを新規ユーザーアカウントへの招待として使用できます。
  • 同様に、パスワード変更メールテンプレートをカスタマイズすることで、Auth0 のパスワード変更ワークフローを使ってパスワード変更リンクを生成し、テナントの設定済み SMTP プロバイダーを使用して招待メールを送信できます。
すでに外部メールソリューションがあり、テナントで SMTP プロバイダーを設定したくない場合は、Auth0 のメールテンプレートやワークフローを使う代わりに、Management API を使用してパスワード変更チケットを生成し、そのチケットリンクをユーザーに自分でメール送信することもできます。
この実装では、ユーザーに保留中の招待があることを示すユーザーメタデータのプロパティ (この手順では user.app_metadata.needsInvitation) を使用します。これが true の場合、ユーザーには招待用の画面が表示され、それ以外の場合は通常のパスワードリセット画面が表示されます。

1. パスワード変更メールテンプレートをカスタマイズする

まず、ユーザー招待ワークフローとパスワード変更ワークフローの両方を処理できるように、パスワード変更 (リンク) メールテンプレートをカスタマイズします。 Liquid を使用して、未処理の招待に対応するユーザーメタデータプロパティが設定されているかどうかを確認し、適切なメッセージを送信します。たとえば、次のようになります。
{% if user.app_metadata.needsInvitation %}
    // ユーザー招待メールのコンテンツをここに記述
{% else %}
    // パスワード変更メールのコンテンツをここに記述
{% endif %}
さらに、メッセージ本文内のパスワードリセットリンクにクエリパラメーターを追加し、パスワードリセットページでユーザーにどの画面を表示するかを指定します。たとえば、type=invite または type=reset を追加できます。

2. パスワードリセットページのスタイルを設定する

テンプレートで設定したクエリパラメーターに基づいて、ユーザー招待とパスワード変更の両方のワークフローに対応できるよう、パスワードリセットページのスタイルを設定します。 Universal Login の手順については、Universal Login をカスタマイズする を参照してください。Classic Login の手順については、パスワードリセットページをカスタマイズする を参照してください。

3. 招待プロパティを解除する post-login Action を作成する

ユーザーがパスワードを設定して初回ログインを完了すると、以後は招待は不要になり、今後はパスワード変更フローが適用されるようにする必要があります。 これに対応するには、user.app_metadata.needsInvitationfalse に設定する post-login Action を作成 します:
exports.onExecutePostLogin = async (event, api) => {
    if (event.user.app_metadata.needsInvitation) {
        api.user.setAppMetadata("needsInvitation", false);
    }
};

4. ユーザー招待を送信する

ユーザー招待を送信するには、ダッシュボードで新しい Auth0 データベースユーザーを作成するか、Management API の Create a User エンドポイントを使用し、次のように設定します。
  • user.email_verified パラメーターを false に設定します。
  • user.app_metadata.needsInvitationtrue に設定します。
次に、Authentication API の Change password エンドポイントを呼び出して、ユーザーに招待メールを送信します。

詳細情報

パスワード設定後のユーザーのリダイレクト先を制御するには、次のように設定します。 メール設定の詳細については、以下を参照してください。