Laravelの認証機能(auth)で新規ユーザ登録をできなくする
2019年03月01日
Laravelの認証機能で、ユーザ登録をできなくする方法についての解説です。
Laravelには、標準でAuth(認証機能)がついているので、標準で入っている認証機能を導入するのは非常に簡単です。
しかし、この標準のAuth機能は、Authをかけているページをログインページにリダイレクトし、そこでメールアドレスとパスワードを入力すればログインすることがでできるのですが、新規登録への導線がついているので、管理者だけログインできればよくて、それ以外のユーザの新規登録を受け付けていない場合があると思います。
そのような場合でも、routesの設定を変更することで簡単に対応することが可能です。
php artisan:make auth
をすることで、routesのweb.phpに以下の2行が追加されていると思います。
Auth::routes(); Route::get('/home', '[email protected]')->name('home');
これを、以下のように変更すればOKです。
//ここを変更 Auth::routes(['register' => false]); Route::get('/home', '[email protected]')->name('home');
これをすることで、ログイン画面にRegisterと表示されている部分が消え、登録ができなくなる他、登録URLにアクセスしても404 not foundになります。
合わせてRegisterControllerを削除するように、Laravel公式サイトには書いてありますが、特にその対応をしなくても機能しなくなっていたので問題ありませんでしたが、一応削除しておくと良いと思います。