Laravel 6 の Auth::routes() の中身を確認する

Laravel は、マニュアルの認証のところにも説明されているように、routes/web.phpAuth::routes(); と記載するだけで、認証系のルート定義を設定することができます。しかし、アプリケーションによっては必要のない機能があったり、一部のルート定義を変更したい場合もあります。そんなときのための覚書です。

Auth::routes() の引数で制御できる機能

一部の認証機能については、Auth::routes() に引数を与えることで制御することができます。これで済ますことができるのであれば、こちらの方法が楽です。

Auth::routes([
    'register' => false,  // ユーザー登録用のルート。デフォルトは true
    'reset'    => false,  // パスワードリセット用のルート。デフォルトは true
    'confirm'  => false,  // パスワード確認用のルート。Auth\ConfirmPasswordController が存在すればデフォルトは true
    'verify'   => true,  // メール確認用のルート。デフォルトは false
]);

個々の機能のルート定義

個々の機能のルート定義は、vendor/laravel/framework/src/Illuminate/Routing/Router.php に記述されています。これを機能別に分解して説明します。routes/web.php に直接記述できる形に書き換えています。

ログイン

Route::get('login', 'Auth\LoginController@showLoginForm')->name('login'); // view は auth.login
Route::post('login', 'Auth\LoginController@login');

ログアウト

Route::post('logout', 'Auth\LoginController@logout')->name('logout');

ユーザー登録

Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register'); // view は auth.register
Route::post('register', 'Auth\RegisterController@register');

パスワードリセット

Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request'); // view は auth.passwords.email
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset'); // view は auth.passwords.reset
Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');

パスワード確認

重要なページへのアクセスの際に再度パスワードを確認するような場合に使うものです。

Route::get('password/confirm', 'Auth\ConfirmPasswordController@showConfirmForm')->name('password.confirm'); // view は auth.passwords.confirm
Route::post('password/confirm', 'Auth\ConfirmPasswordController@confirm');

メール確認

ユーザーのメールアドレスの有効性を確認するための機能です。マニュアルはこちら

Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice'); // view は auth.verify
Route::get('email/verify/{id}/{hash}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::post('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');
この記事を書いた人

グッドネイバー

“ Webに悩むお客さまの「よき隣人」でありたい ” をモットーに、Web システム開発(主に Laravel)、Web マーケティング支援の仕事をしています。詳しい業務内容はこちら。お仕事のご依頼・ご相談はこちらからお気軽にどうぞ。

PHPLaravel