post-login
トリガーを構成すると、user_metadata
とapp_metadata
をユーザーのログインフローの一部として変更できるようになります。ログイン後のトリガーは、ユーザープロファイルにアプリケーション固有のデータを保存したり、ユーザー操作ログをキャプチャしたり、属性をメタデータフィールドにマッピングしたり、ユーザープロファイルにあるコストのかかる操作値をキャッシュして今後のログインに再利用したりなどの作業に役立ちます。
post-login``api
オブジェクトには、このトリガーで実行できる一般的な操作があります。ユーザーメタデータを管理するには、api.user.setAppMetadata
メソッドとapi.user.setUserMetadata
メソッドを使用します。たとえば、特定のユーザーに何らかの動作が複数回にわたって実行されるのを防ぐには、以下のようなアクションを検討します。
api.user.setAppMetadata
を呼び出して、ユーザーオブジェクトにある一部のメタデータを保存したいと示します。各トリガーの実行終了時に、アクションはユーザープロファイルを単一操作で更新します。setUserMetadata
アクションが複数回呼び出された場合(同じフローの異なるアクションで呼び出された場合であっても)、ユーザープロファイルの更新はトリガーの実行が終わったときの1回だけになります。
setUserMetadata
またはsetAppMetadata
の複数の呼び出しは、異なるアクションで行われたものであっても、トリガーの実行の最後に1つのユーザープロファイル更新にまとめてバッチ処理されます。ベストプラクティス
Auth0のプロファイルに保管するデータは多すぎないようにします。このデータは、認証と認可に使用されることを目的としています。ユーザーが自分のuser_metadata
フィールドを編集できるため、機微データを保管してはいけません。Auth0のメタデータと検索機能は、市場調査や高い検索・更新の頻度が必要なものを想定して設計されていません。Auth0をそのような目的で使用すると、ほぼ確実にシステムの拡張性や性能に問題が生じます。データを外部システムに保管して、Auth0にポインター(ユーザーID)を保管した方が、バックエンドシステムが必要に応じてデータを取得できます。
レート制限
ユーザーとアプリのメタデータの設定は、テナントのレート制限の対象となり、ログインのスループットに影響する可能性があります。
429
HTTPステータスコードが返される限り、アクションは要求を再試行します。再試行間の遅延は、429
応答の一部として返されるX-RateLimit-Reset
ヘッダーの値によって決まります。
リダイレクト
api.redirect.sendUserTo()
でリダイレクトが行われる場合には、保留中のユーザーやアプリのメタデータ更新がユーザープロファイルに適用されてから、ユーザーが外部サイトにリダイレクトされます。詳細については、「アクションを使用してリダイレクトする」を参照してください。