Laravel 6 の Auth::routes() の中身を確認する
Laravel は、マニュアルの認証のところにも説明されているように、routes/web.php
に Auth::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');
ディスカッション
コメント一覧
まだ、コメントがありません