Skip to main content
Actions トランザクションメタデータを使用すると、トランザクションの間、post-login Action 内でカスタムメタデータを保存、参照、共有できます。 従来は、各 Action が独立して動作していたため、Action 間で情報を受け渡すのは困難でした。Actions トランザクションメタデータを使うと、次のことが可能になります。
  • API レスポンスや中間計算結果などのデータを Action 間で共有する。
  • 異なる Action で同じ情報を再取得したり、再計算したりする必要をなくす。
開発でトランザクションメタデータを使用する前に、制限事項を確認することをお勧めします。詳しくは、Actions の制限事項 を参照してください。

仕組み

トランザクションメタデータを保存するためのキーと値のペアを設定するには、post-login API object api.transaction.setMetadata を使用します。 保存されたキーと値のペアにアクセスするには、post-login Event object event.transaction.metadata を使用します。これにより、同じ Action 内、または 1 回の実行における post-login トリガーの後続の Actions からアクセスできます。 API オブジェクトと Event オブジェクトは、次のパラメーターを受け取ります。 Actions の記述について詳しくは、Write Your First Action を参照してください。

遅延

Actions Transaction Metadata を使用すると、わずかな遅延が追加で発生する可能性があります。遅延の大きさは metadata のペイロードサイズに比例し、Action の中断が発生する場合に影響します。たとえば、 をトリガーする場合、Actions からリダイレクトする場合、または Forms をレンダリングする場合は、ストレージからデータを再読み込みする必要があるため、遅延が問題になる可能性があります。 ただし、この遅延の可能性は、一連の Actions で必要なデータを取得するために冗長な外向き HTTP リクエストを行う場合に比べれば、最小限にとどまるはずです。

メタデータにすぐアクセスする

トランザクションのメタデータにキーと値のペアを設定し、その値にすぐアクセスできます。

対応している値を設定する

stringnumberboolean 型の値を設定できます。

値をシリアライズする

制限事項の範囲内で、値はstringとしてシリアライズします。
object型またはarray型の値は設定できませんが、stringとしてシリアライズすることはできます。

Actions 間で値を共有する

同じ実行シーケンス内の Actions 間で、キーと値のペアを共有します。 Action 1 api オブジェクトの setMetadata メソッドを使って、hello キーに Auth0 という値を設定します。
アクション 2 event オブジェクトの transaction.metadata プロパティを使用して設定された値にアクセスし、トランザクションメタデータ内の hello キーに対する Auth0 の値をログに記録します。

メタデータを更新する

既存のキーに別の値を設定して、メタデータを更新します。 アクション 1 トランザクションのメタデータのキーと値をそれぞれ custom_tx_idxyz123 に設定します。
アクション 2 キーを custom_tx_id、値を xyz123 として記録します。次に、custom_tx_idabc456 に設定し、トランザクションメタデータ内の custom_tx_id の最新の値でもう一度記録します。
アクション 3 custom_tx_id の値として abc456 を記録します。

メタデータを削除する

各キーの値を null にすることで、トランザクションメタデータの値を削除できます。 アクション 1 トランザクションメタデータに custom_tx_id を設定します。
アクション 2 custom_tx_idnull に設定し、その null 値をログに記録します。
アクション 3 custom_tx_idnull 値を記録します。

外部サイトへのリダイレクト時に値を保持する

リダイレクト中も、トランザクションメタデータを保持します。ユーザーが認証フローを再開すると、その値を利用できます。 Action 1 トランザクションメタデータに custom_tx_id を設定します。
アクション 2 トランザクションのメタデータに含まれる custom_tx_id を持つトークンを送信して、外部サイトにリダイレクトします。次に、トランザクションのメタデータ内の custom_tx_id の値と、外部サイトに渡され、別のトークンのペイロードで送り返されてきた値を比較します。

Forms のレンダリング時に値を保持する

Actions を使用して Forms をレンダリングする と、トランザクションメタデータの値は保持され、ユーザーが認証フローを続行する際にも利用できます。 Actions で Forms を使用する方法について詳しくは、Actions を使用して Forms をレンダリングする を参照してください。 Action 1 トランザクションメタデータに custom_tx_id を設定します。
アクション 2 フォームをレンダリングします。次に、Actions の実行を続行する際に、保持された custom_tx_id をログに出力します。

Forms と値を共有する

Actions を使って Forms をレンダリングし、トランザクションのメタデータの値を Form に渡せます。 Action 1 トランザクションのメタデータに custom_tx_id を設定します。
アクション 2 トランザクションメタデータの custom_tx_idvars パラメーターとして渡し、Form をレンダリングします。次に、Actions の実行を続行する際に、トランザクションメタデータ内の custom_tx_id の値と Form に渡した値を比較します。