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

仕組み

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

レイテンシー

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

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

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

サポートされている値を設定する

stringnumberboolean 型の値を設定します。

値をシリアライズする

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

Actions 間で値を共有する

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

メタデータを更新する

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

メタデータを削除する

各キーの値を null に設定して、トランザクションメタデータの値を削除します。 Action 1 トランザクションメタデータに custom_tx_id を設定します。
Action 2 custom_tx_idnull に設定し、custom_tx_id の値として null をログに記録します。
Action 3 custom_tx_id の値として null をログ出力します。

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

redirects の間も、トランザクションメタデータは保持されます。値は、ユーザーが認証フローを続行した際に使用できます。 Action 1 トランザクションメタデータに custom_tx_id を設定します。
Action 2 トランザクションのメタデータにある custom_tx_id を含むトークンを送信して、外部サイトにリダイレクトします。続いて、トランザクションのメタデータ内の custom_tx_id の値を、外部サイトに渡し、その後別のトークンのペイロードで返送された値と比較します。

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

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

Forms と値を共有する

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