11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Auth0】Universal Loginの新規登録を無効化する

Last updated at Posted at 2020-09-30

はじめに

前回の記事でAPIを利用したAuth0のユーザー登録をやってみましたが
ユーザー登録は ManagementAPIで行い、ログイン画面はUniversal Loginを利用する場合はUniversal Loginから新規登録をできないように設定しておきたいかと思います。

今回はUniversal Loginから新規登録ができないように設定をしてみました。

Database Connections設定

新規登録をできないようにするにはUniversal Loginの設定ではなくデータベースの設定を変更する必要があります。

Auth0の管理画面を開いてデータベースの設定を開きます。

スクリーンショット 2020-09-29 14.53.58.png

データベース設定の中のDisable Sign Upsを以下のようにONにします。

スクリーンショット 2020-09-29 14.58.33.png
この設定だけでUniversal LoginからSignUpの選択肢が消えます。

Classicの場合は以下のようにLogin、SignUpのタブが消え、ログインのみが可能になります。
スクリーンショット 2020-09-29 15.04.29.png

Newの場合は下のほうに表示されていたSingUpのリンクが消えます。
スクリーンショット 2020-09-29 15.09.30.png

ソーシャルログインによる新規登録の無効化

ここまでの手順でAuth0のデータベースに対する新規登録は無効化することができましたが
これだけだとソーシャルログインによるユーザーの登録を防ぐことはできません。
ソーシャルログインしてきたユーザーがデータベースに存在しない場合はユーザーが作成されてしまいます。

ソーシャルログインを利用しつつ、ソーシャルログインによる新規登録は防ぎたい場合はRulesを使って制御します。
Rulesのテンプレートの中からDisable social signupsを選択してRulesを追加します。
スクリーンショット 2020-09-29 15.15.55.png

このRulesを追加した状態でソーシャルログインによる新規登録を行うとエラーが返却されるので
アプリケーション側でエラーハンドリングをしてください。(エラーの詳細はDisable social signupsのコードを参照してください。)

ソーシャルログインによる新規登録を無効化するときの注意点

ソーシャルログインによる新規登録の無効化のほうはRulesを使った制御になっているので
データベース設定での新規登録の無効化とは違い、実はデータベース上にユーザーが作成されてしまいます。

Rulesの中でソーシャルログインによる新規登録が行われたユーザーはapp_metadatais_signupというプロパティが追加されており、これがtrueに場合にログインエラーとしているだけです。
スクリーンショット 2020-09-29 15.27.07.png

もしもDisable social signupsのRulesでエラーとなっているユーザーのログインを許可したい場合は
app_metadatais_signupプロパティを削除してください。

おわりに

ユーザー登録をManagementAPIや管理画面からの操作だけでやりたい場合は
Universal Loginからの新規登録の無効化もぜひ一緒にやってみてください。

11
8
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?