メインコンテンツへスキップ

始める前に

  1. 次のスコープを有効にした マシン間アプリケーション を作成します。
  • read:users
  • update:users
  • create:users
  • read:users_app_metadata
  • update:users_app_metadata
  • create:users_app_metadata
  1. M2M アプリケーションの認証情報を使用して、Vault 接続 を追加します。
Forms for Actions を使用すると、カスタムのプライバシーポリシーフローを作成し、同意内容を app_metadata オブジェクトに保存できます。
Dashboard > Actions > Forms > Privacy policy use case
以下のセクションでは、ノードとフローを使用して Update Policy フォームを作成する方法と、そのフォームを Post Login Action に追加する手順を説明します。

フォームを一から作成する

情報を収集するフォームを作成するには、次の手順に従います。
  1. Auth0 Dashboard > Actions > Forms を選択して、フォームエディターを開きます。
  2. Create Form > Start from scratch を選択します。
デフォルトでは、新しいフォームには Start ノード、Step ノード、Ending screen ノードが含まれます。
Dashboard > Forms > Use Cases > Form

Step ノードを設定する

Step ノードは、ユーザーに表示される画面です。次の手順で Step ノードに Fields を追加し、新しい同意への承諾値を取得します。
  1. Components menu から Rich text フィールドを Step ノードにドラッグします。
    • Rich text: プライバシーポリシーの更新内容に関する説明を入力します。
    • Save を選択します。
  2. Legal フィールドを Step ノードにドラッグします。
    • ID: privacy_policies を入力します。
    • Required: チェックボックスを有効にします。
    • Legal: I agree to the Privacy Policy を入力します。
    • Save を選択します。
  3. 保存するには Publish を選択します。
Dashboard > Actions > Forms > ユースケース プライバシーポリシー Step ノード

Flow ノードを設定する

次の手順に従って、app_metadata を更新し、認証フローを再開するために Step ノードの後に Flow ノードを追加します。
  1. フォームエディターの下部で Flow を選択します。
  2. Step ノードと Ending Screen ノードの間にある既存のリンクを削除します。
  3. 新しい Flow > Click to add a flow > Create a new flow. を選択します。
    • Name フィールドに Update app_metadata と入力します。
    • Create を選択します。
    • Save を選択します。
  4. 以下の図のように、Flow ノードを Step ノードと Ending Screen ノードにリンクします。
  5. 保存するには Publish を選択します。
Dashboard > Actions > Forms > Form
次の手順に従って、フローに Auth0 の Update user アクションを追加します。
  1. Flow Update app_metadata > Edit flow を選択し、新しいタブでフローエディターを開きます。
  2. StartAction の下で + アイコンを選択し、Update user アクションを追加します。以下のフィールドを入力してから、Save を選択して続行します。
    • Connection: ドロップダウンから、M2M アプリケーション用の Vault 接続を選択します。
    • User ID: {{context.user.user_id}} を入力します。
    • Body: 次のコードをコピーして貼り付け、app_metadata を privacy_policies および privacy_policies_timestamp プロパティで更新します。
      {
        "app_metadata": {
          "privacy_policies": true,
          "privacy_policies_timestamp": "{{ functions.toTimestamp() }}"
        }
      }
      
    • Save を選択します。
  3. 保存するには Publish を選択します。
Dashboard > Actions > Forms > User case privacy policy code
フロー Update app_metadata は、app_metadata オブジェクトに privacy_policies の値 true を追加し、ヘルパー関数を使用してタイムスタンプも生成します。

フォームのレンダリングコードを取得する

カスタムの Post Login Action でフォームをレンダリングするために、次の手順でフォームのレンダリングコードを取得します。
  • フォームエディターで <> Render を選択します。
  • Copy を選択します。
Dashboard > Actions > Forms > フォーム > 埋め込み

Post Login Action を作成する

次の手順で、フォームをレンダリングする post-login Action を作成します。
  1. Auth0 Dashboard > Actions > Flows > Login に移動します。
  2. + アイコンを選択し、Build from scratch を選択します。
    • Name: Render Update Policy Form と入力します。
    • Trigger: Login / Post Login を選択します。
    • Runtime: 推奨バージョンを選択します。
  3. Create を選択します。
post-login Action を設定するには、以下の手順に従います。
  1. コードエディターから既存のコードを削除します。
  2. フォームをレンダリングするコードをコードエディターに貼り付けます。
  3. フォームをレンダリングする条件ロジックを定義するようにコードを編集します。
    /**
    * @param {Event} event - ユーザーと、そのユーザーがログインしているコンテキストに関する詳細。
    * @param {PostLoginAPI} api - ログインの動作を変更するためのメソッドを使用できるインターフェース。
    */
    exports.onExecutePostLogin = async (event, api) => {
      const FORM_ID = 'REPLACE_WITH_YOUR_FORM_ID';
    
      if (event.user.app_metadata.privacy_policies !== true) {
        api.prompt.render(FORM_ID);
      }
    }
    
    exports.onContinuePostLogin = async (event, api) => { }
    
    上記のコード例では、ユーザーの app_metadata に privacy_policies プロパティが存在しない場合にフォームがレンダリングされます。
  4. Deploy を選択します。
  5. Render Update Policy Form Action を Login フローにドラッグアンドドロップします。
    Dashboard > Forms > Use Case > Render update policy form login action
  6. Apply を選択します。

実装をテストする

次の手順で実装をテストします。
  1. app_metadata 属性の privacy_policies に値が設定されていない既存のユーザーでログインします。
  2. Login フローの post-login Action でフォームがレンダリングされ、同意を求められます。
  3. Auth0 Dashboard > User Management > Users, を選択し、対象のユーザーを見つけて、app_metadata 属性の privacy_policiestrue の値とタイムスタンプが含まれていることを確認します。