[Auth0] Email未検証のユーザーによる各種操作時の動作を確認してみた
こんにちは、CX事業本部の若槻です。
認証管理プラットフォームAuth0では、作成されたユーザーのEmailが利用可能であるかを検証済み(verified)/未検証(pending)のステータスで管理しています。
今回は、Auth0でEmailが未検証のユーザーによる各種操作時の動作を確認してみました。
Email未検証のユーザーを作成
ユーザーを作成します。作成後のユーザーのEmailのステータスは既定で未検証(pending)となります。
ユーザーを作成するとメールアドレス宛にVerify Linkが記載されたメールが送付され、そのLinkを開くことによりEmailの検証が完了しますが、ユーザー側であえてこの検証完了操作は行わないでおきます。
このEmail未検証のユーザーを使用して各種操作を試してみます。
各種操作を試す
ログイン
アプリケーションに初回ログインしてみます。(ログインを行う人が初期パスワードを知っている前提です)
するとログイン成功し、アプリケーションのログイン後の画面が開けました。
初回ログインに成功後もEmailのステータスは引き続きpendingとなっています。
ユーザー自身によるパスワードリセット
アプリケーションのログイン画面からユーザー自身によるパスワードリセットをしてみます。
パスワードリセットメールの送信完了画面が表示されました。
この時点でもEmailのステータスは引き続きpendingとなっています。
メールアドレスにはパスワードリセットを要求するメールが届いているので、本文に記載のURLリンクを開きます。
パスワードリセット画面が開くのでリセットを行います。
パスワードリセットが完了しました。
この時点のユーザーのEmailのステータスを見ると検証済み(verified)に更新されています。
リセット後のパスワードでアプリケーションへのログインも行えました。
まとめ
ユーザーのEmailのステータスが未検証(pending)の場合でも、下記の操作はすべて可能であり、「3. パスワードリセットの実施」の操作を行ったタイミングでEmailのステータスが自動で検証済み(verified)に更新される、という結果となりました。
- 初期パスワードでのログイン:(初期パスワードを知っている場合に限り)可能
- ユーザー自身によるパスワードリセットメールの送信:可能
- パスワードリセットの実施:可能
- リセット後のパスワードでのログイン:可能
パスワードリセットメール送付による操作がEmailの検証を兼ねているようですね。
おわりに
Auth0でEmailが未検証のユーザーによる各種操作時の動作を確認してみました。
Email未検証のユーザーでもログインは可能であるというのは予想外の動作でした。pendingの場合にログインさせたくない場合はRulesなどを使用して認証時にステータス確認してVerifiedの場合のみログイン許可させる、という実装が必要そうです。
一方で、パスワードリセットメール送付による操作がEmailの検証を兼ねている、というのは納得の結果でした。
以上