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

はじめに

このクイックスタートでは、Action Module を作成し、Action から利用して外部サービスにログを送信する方法を説明します。
1

Action モジュールを作成

特定のActionでAction Moduleを使用するには、まずAction Moduleを作成し、その後Actionに追加して使用する必要があります。
  1. Auth0 Dashboard > Actions > Library に移動し、Modules を選択します。
  2. Create Module を選択します。
  3. 名前 を入力します。
  4. Create を選択します。
Code Editor が表示されます
Actions Modules - 新しいAction Module
2

シークレットの追加

各 Action Module には、シークレットのキーと値のペアを含めることができます。これらを使用して、API キー、証明書、環境ごとに変わる可能性のある値などの機密情報を保持します。
外部サービスの URL をシークレットとして保存しましょう。
  1. コードエディターの左側のサイドバーにある アイコンを選択します。
  2. Add Secret を選択します。
  3. 名前SERVICE_URL を入力します。
  4. フィールドに外部サービスの URL を入力します。
  5. Create を選択します。
Actions Modules - シークレットを追加
Auth0 により、シークレットが Action Module のシークレット一覧に追加されます。
追加手順: API_KEY もシークレットとして保存するには、同じ手順を繰り返します。これは各リクエストのヘッダーに含めて外部サービスに送信します。
シークレットを作成すると、Auth0 がその値を表示することはありません。Auth0 はすべてのシークレットを暗号化し、安全に保存します。
Action Module Secret は、ほかの Actions Modules および Actions Secrets とは独立しています。
Action Module で Secrets を使用するには、actions.secrets.[secret_key] と入力します。
3

カスタムロジックの追加

次に、Action Module に次のコードを追加します。
Action Module に次のコードを追加します。
module.exports = {
  sendLog: async (code, message) => {
    try {
      await fetch(actions.secrets.SERVICE_URL, {
        method: 'POST',
        headers: {
          'X-API-Key': actions.secrets.API_KEY,
        },
        body: JSON.stringify({
          code,
          message
        }),
      });

      console.log({
        code,
        message
      });
    } catch (err) {
      throw new Error('External service failure');
    }

    return;
  }
};
次の点に注意してください。
4

下書きを保存する

Action Module の下書きを保存できます。
  1. Save Draft を選択します。
Actions Modules - 下書きを保存済み
これにより、Action Module は新しいバージョンを公開せずに保存されるため、これを使用している Actions には影響しません。
5

Action モジュールを公開する

Action Module のコードに問題がなければ、次はそれを公開します。
  1. 公開を選択します。
Action Module を公開すると、その時点のスナップショットが取得され、Action Module Versionとして記録されます。
  1. バージョン履歴を表示を選択します。
Actions Modules - バージョン履歴
Auth0 に、ドラフトを含む Action Module Version の一覧が表示されます。
これで、Action で Action Module を使い始めることができます。
ActionAction Module Versionを明示的に参照する必要があります。これにより、予期しないエラーにつながる可能性のある自動アップグレードを防げます。
6

Action に Action Module を追加する

Action に Action Module を追加してみましょう。
  1. Auth0 Dashboard > Actions > Library に移動し、目的の Action を選択します。
  2. Action Editor を開いたら、左側のサイドバーで アイコンを選択します。
  3. Add Module を選択します。
  4. モジュールの名前バージョンを選択します。
  5. 追加 を選択します。
Actions - Actionモジュールの追加
7

Action 内で Action Module を使用する

それでは、Action 内で Action Module を使用してみましょう。
  1. require 文を追加します。
const logger = require('actions:logger');
require 文では、actions:[module-name] 形式で Action Module を参照します。
  1. ログを送信したい箇所の Action 関数 に、logger.sendLog の呼び出しを追加します。
await logger.sendLog('logger_success', 'Your Action was able to use the Logger Action Module');
  1. Action の Deploy を選択します。
Actions - Action Module を使用する
Action は必ず Trigger にバインドしてください。
チェックポイントこれで、Action で使用する、完全に機能する Action Module の準備が整いました。

高度な使用方法

Action Moduleには、**NPM 依存関係**を追加して使用できます。
  1. コードエディターの左側のサイドバーで****アイコンを選択します。
  2. Add Dependencyを選択します。
  3. NPM パッケージ名前を入力します。
  4. NPM パッケージバージョンを入力します。
  5. Createを選択します。
Actions Modules - 依存関係を追加済み
Auth0 によって、依存関係が Action Module の依存関係リストに追加されます。
一覧に表示されている依存関係は、require('[package-name]')で読み込むことで Action Module で使用できます。
この Action を保存すると、Auth0 は依存関係の最新バージョンを解決し、今後のパッケージ更新で Action が動作しなくなるのを防ぐために、特定のバージョン番号に置き換えます。latest の代わりに特定のバージョンを指定することもできます。