Auth0でメールアドレスを検証する方法を調べてみた
Auth0では、メールアドレスの検証ができます。これにより、「メールアドレスが未検証のユーザをログインさせない」などが実現できます。
おすすめの方
- Auth0でメールアドレスの検証をしたい方
- Auth0でメールアドレスを検証する方法を知りたい方
Auth0のメールアドレス検証
本記事での扱い
メールアドレス検証方法とは、ユーザ情報のemail_verified
をtrue
にする方法とします。
メールアドレスの検証の方法
2つの種類があります。
- ユーザが検証リンクにアクセスして、検証OKにする
- 管理側のアプリケーションで、検証OKにする
Auth0のRulesやActionsを使えば、Universal Loginでサインアップしたとき・ログインしたときに検証メールを送信することもできそうです。
本記事では、下記の5つを紹介します。
- ユーザ登録時、Auth0が検証メールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる。
- ユーザ登録後、任意のタイミングでManagement APIを実行し、Auth0が検証メールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる。
- ユーザ登録後、任意のタイミングでManagement APIを実行し、検証リンクを取得し、自分でユーザにメールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる
- ユーザ登録時、
email_verified:true
でユーザ登録する - ユーザ登録後、任意のタイミングでManagement APIを実行し、検証OKにする
ユーザが検証リンクにアクセスして、検証OKにする
1. ユーザ登録時、Auth0が検証メールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる。
Auth0のManagement APIを使ってユーザ登録を行います。このとき、verify_email
をtrue
にします。
{ "email": "sample@example.com", "user_id": "any", "connection": "Username-Password-Authentication", "password": "password", "verify_email": true }
これによって、Auht0から本人確認のメールが届きます。このVerify Link
にアクセスすることで、メールアドレスの検証がOKになります。
メール内容の変更や日本語化もできます。
2. ユーザ登録後、任意のタイミングでManagement APIを実行し、Auth0が検証メールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる。
Auth0のManagement APIを使ってユーザ登録を行います。そのあと、任意のタイミングで下記のAPIを実行します。
{ "user_id": "auth0|any" }
これによって、Auh0から本人確認のメールが届きます。このVerify Link
にアクセスすることで、メールアドレスの検証がOKになります。
3. ユーザ登録後、任意のタイミングでManagement APIを実行し、検証リンクを取得し、自分でユーザにメールを送信する。メール本文の検証リンクにユーザがアクセスしたら検証OKになる
Auth0のManagement APIを使ってユーザ登録を行います。そのあと、任意のタイミングで下記のAPIを実行します。
{ "result_url": "http://localhost:3000", "user_id": "auth0|any" }
下記のResponseを得るので、この検証URLを含んだメールを作成し、自分でユーザに送信します。
{ "ticket": "https://your-tenant.auth0.com/u/email-verification?ticket=xxxyyyzzz" }
ユーザが上記のVerify Link
にアクセスすることで、メールアドレスの検証がOKになります。
ユーザがリンクにアクセスする部分は同じですが、Auth0ではなく、自分でメール送信する部分が異なります。
管理側のアプリケーションで、検証OKにする
4. ユーザ登録時、email_verified:true
でユーザ登録する
Auth0のManagement APIを使ってユーザ登録を行います。このとき、email_verified
をtrue
にします。
{ "email": "sample@example.com", "user_id": "any", "connection": "Username-Password-Authentication", "password": "password", "email_verified": true }
これによって、メール検証済みのユーザとして、ユーザ登録ができます。メール検証は、自分自身で行います。
5. ユーザ登録後、任意のタイミングでManagement APIを実行し、検証OKにする
Auth0のManagement APIを使ってユーザ登録を行います。そのあと、任意のタイミングで下記のAPIを実行します。
{ "email_verified": true }
これによって、ユーザデータをメール検証OKに更新します。メール検証は、自分自身で行います。
さいごに
どなたかの参考になれば幸いです。