Auth0 Management APIによるユーザー作成時にVerify Mailを送信しないようにする

2021.06.17

こんにちは、CX事業本部の若槻です。

以前のエントリで、Auth0 Management APIを使用してユーザーを作成する方法を紹介しました。

このエントリではcreateUser()を既定のパラメータで使用していおり、この場合は作成したユーザーへVerify Mailが送信され、Emailの検証が促される動作となりますが、このVerify Mailの送信を抑制したい場合もあるかと思います。

今回は、Auth0 Management API(Node.js)によるユーザー作成時にVerify Mailを送信しないようにしてみました。

やってみた

ここではVerify Mailを送信しないに加えて、Emailの検証ステータスが下記パターンとなるユーザー作成を行ってみます。

  • Email未検証(pending)のステータスで作成
  • Email検証済み(verified)のステータスで作成

まず両パターンで共通して使用する定義を行います。(ManagementClient()のパラメーターについては冒頭のエントリに詳しいので参照ください。)

# auth0クライアント
const ManagementClient = require("auth0")

const auth0 = new ManagementClient.ManagementClient(
  {
    domain: AUTH0_DOMAIN,
    clientId: AUTH0_USER_MANAGEMENT_APP_CLIENT_ID,
    clientSecret: AUTH0_USER_MANAGEMENT_APP_CLIENT_SECRET,
    scope: 'create:users'
  }
)
# 作成するユーザーのパラメーター
const EMAIL_1 = "EMAIL_1"
const EMAIL_2 = "EMAIL_2"
const PASSWORD = "PASSWORD"
const CONNECTION = "Username-Password-Authentication"

ユーザーをEmail未検証(pending)のステータスで作成する

この場合はcreateUser()のパラメーターにverify_email: falseを追加します。

const createUserWithoutVerifyMail_1 = async () => {
  await auth0.createUser({
    connection: CONNECTION,
    email: EMAIL_1,
    password: PASSWORD,
    verify_email: false,
  })
}

createUserWithoutVerifyMail_1()

上記を実行し、管理ダッシュボードから作成されたユーザーのEmail検証ステータスを見てみると、未検証(pending)で作成できています。かつユーザーへのVerify Mailの送信は行われていません。

ユーザーをEmail検証済み(verified)のステータスで作成する

この場合はcreateUser()のパラメーターにemail_verified: trueを追加します。

const createUserWithoutVerifyMail_2 = async () => {
  await auth0.createUser({
    connection: CONNECTION,
    email: EMAIL_2,
    password: PASSWORD,
    email_verified: true,
  })
}

createUserWithoutVerifyMail_2()

上記を実行し、管理ダッシュボードから作成されたユーザーのEmail検証ステータスを見てみると、検証済み(verified)で作成されています。こちらもユーザーへのVerify Mailの送信は行われていません。

おわりに

Auth0 Management API(Node.js)によるユーザー作成時にVerify Mailを送信しないようにしてみました。

細かなチューニングですが、ユーザー登録時のエクスペリエンスを最適化したい時に使っていきたいですね。

以上