@auth0/actions NPMパッケージは、Auth0 Actions TypeScriptの定義を助ける公式のActionライブラリーです。外部のエディターやIDEでプロジェクトのActionをコーディングしたりテストしたりするときに役立ちます。
利点
このライブラリーは以下のユースケースに役立ちます。- IDE / コードエディターのアシスタンス:開発者はこのライブラリーを参照することで、IDEやコードエディターで自動補完、オブジェクトと関数の定義、エラーチェックを使ったコーディングを行えます。
- TypeScript Development:ActionはあくまでもNode.js CommonJSを使用してコーディングされ、動作しますが、このライブラリーを活用することで、TypeScriptを使用して外部プロジェクトでActionを開発できるようになり、Auth0テナントにCommon JSとしてビルトおよびデプロイすることが可能になります。
- ユニットテストの改善:外部プロジェクトでのTypeScript開発が可能になることで、開発者はベストプラクティスに沿い、TypeScriptの定義に基づいてユニットテストを改善できるようになります。
- AIでのAction生成:このライブラリーで、AIによるより正確なActionサンプルの生成に一歩近づきます。
使用方法
インストール
以下のいずれかのパッケージマネージャーを使い、パッケージを開発時依存関係としてインストールします。パッケージは、開発ツールを補完する開発時依存関係として使用する必要があります。
- NPM:
npm install @auth0/actions --save-dev - Yarn:
yarn add @auth0/actions --dev - Pnpm:
pnpm add @auth0/actions --save-dev
インポート
ライブラリーには以下の構造があります。@auth0/actions/[trigger_name]/[trigger_version]
例:@auth0/actions/post-login/v3
使用するテクノロジーに応じて、次のいずれかの方法でTypeScriptの定義をActionにインポートします。
既存のJavaScriptコードの構造を変更することなくIntelliSenseが必要な場合は、こちらを使用します。
- JSDoc @import
- JSDoc @param
- TypeScript import
既存のJavaScriptコードの構造を変更することなくIntelliSenseが必要な場合は、こちらを使用します。
例
以下のActionsの例では、JavaScriptとTypeScriptの両方を比較しやすいように横に並べています。構成
- JavaScript
- TypeScript
package.jsonで、Actionを作成するときにintelliSenseを活用できるようにすべての開発時依存関係を定義します。ログイン後のアクセスコントロールとIDトークンのカスタムクレーム
以下の例のActionは、ログイン後のフロー中に実行されます。ユーザーにロールが割り当てられているかを確認し、何もない場合はapi.access.deny()を呼び出します。ロールがある場合は、続けてIDトークンにカスタムクレームを設定します。
importステートメントは、コードで外部型が使用できることを宣言します。これにより、エディターはeventとapiオブジェクトの構造を知ることができます。
- JavaScript
- TypeScript