パスワード変更後フロー

パスワード変更後フローは、ユーザーがパスワードをリセット・変更した後に実行されます。このフローを使ってパスワード変更後にユーザーにメールを送ったり、他のシステムに変更を通知したりすれば、Auth0で管理されていないセッションを取り消すことができます。

アクションのパスワード変更後フローを示す図。

このフローのアクションは非ブロック(非同期)であるため、Authパイプラインの実行はアクションの完了を待たずに継続されます。そのため、アクションの結果は、Auth0のトランザクションに影響しません。

トリガー

パスワード変更後

データベース接続のユーザーがパスワードをリセットまたは変更した後、post-change-passwordトリガーが実行されます。

このトリガーには、複数のアクションを結びつけることができ、アクションは順番に実行されます。ただし、これらのアクションは非同期で実行されるため、パスワードリセットのプロセスがブロックされることはありません。

リファレンス

  • イベントオブジェクト:ユーザーとパスワード変更時に使われた接続についてのコンテキスト情報を提供します。

  • APIオブジェクト:フローの動作を変更するためのメソッドが提供されます。

一般的なユースケース

ユーザーの他のシステムでのセッションを無効にする

post-change-passwordアクションを使うと、そのユーザーの他のシステムでのセッションを無効にすることができます。

const axios = require("axios");

/**
 * @param {Event} event - Details about user whose password was changed.
 */
exports.onExecutePostChangePassword = async (event) => {
  axios.post("https://my-api.exampleco.com/revoke-session", { params: { email: event.user.email }});
};

Was this helpful?

/

ユーザーのパスワード変更後にメールを送信する

const axios = require("axios");

exports.onExecutePostChangePassword = async (event) => {
  try {
    // https://sendgrid.api-docs.io/v3.0/mail-send
    axios.post('https://api.sendgrid.com/v3/mail/send',
      {
        personalizations: [{
          to: [{ email: event.user.email }]
        }],
        from: { email: 'admin@exampleco.com' },
        subject: 'Your password was changed',
        content: [{
          type: 'text/plain',
          value: 'The password for your ' + event.connection.name + ' account ' + event.user.email + ' was recently changed.'
        }]
      },
      {
        headers: {
          'Authorization': 'Bearer ' + event.secrets.SENDGRID_API_KEY
        },
      }
    );
  } catch (err) {
    console.log(`Error sending email to ${event.user.email}:`, err.message)
  }
};

Was this helpful?

/