Phương pháp sau đây hoạt động rất tốt:
Sao chép tất cả các tuyến đường từ /vendor/laravel/framework/src/Illuminate/Routing/Router.php
và dán nó vào web.php
và nhận xét hoặc xóa Auth::routes()
.
Sau đó thiết lập một điều kiện để kích hoạt và vô hiệu hóa đăng ký từ .env. Sao chép 503.blade.php
tệp vào views/errors
và tạo 403 bị cấm hoặc bất cứ điều gì bạn thích.
Thêm ALLOW_USER_REGISTRATION=
vào .env và kiểm soát đăng ký người dùng bằng cách đặt giá trị của nó thành đúng hoặc sai.
Bây giờ bạn có toàn quyền kiểm soát các tuyến đường và các tập tin Nhà cung cấp vẫn còn nguyên.
web.php
//Auth::routes();
// Authentication Routes...
Route::get('login', 'Auth\LoginController@showLoginForm')->name('login');
Route::post('login', 'Auth\LoginController@login');
Route::post('logout', 'Auth\LoginController@logout')->name('logout');
// Registration Routes...
if (env('ALLOW_USER_REGISTRATION', true))
{
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@register');
}
else
{
Route::match(['get','post'], 'register', function () {
return view('errors.403');
})->name('register');
}
// Password Reset Routes...
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm')->name('password.request');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail')->name('password.email');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm')->name('password.reset');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
Đây là sự kết hợp của một số câu trả lời trước đó đáng chú ý là Rafal G. và Daniel Centore.