Laravel 5.4 禁用注册路由

新手上路,请多包涵

我正在尝试禁用在 Laravel 5.4 中运行的应用程序上的注册路由。

在我的路线文件中,我只有

Auth::routes();

有什么办法可以禁用注册路由吗?

原文由 Dev.W 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 282
2 个回答

code

 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...
Route::get('register', 'Auth\RegisterController@showRegistrationForm')->name('register');
Route::post('register', 'Auth\RegisterController@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');

因此,您可以将第一个替换为路由列表,并注释掉您在应用程序中不需要的任何路由。

编辑 laravel version => 5.7

在较新的版本中,您可以将参数添加到 Auth::routes() 函数调用以禁用注册路由:

 Auth::routes(['register' => false]);

添加了电子邮件验证路由:

 Route::get('email/verify', 'Auth\VerificationController@show')->name('verification.notice');
Route::get('email/verify/{id}', 'Auth\VerificationController@verify')->name('verification.verify');
Route::get('email/resend', 'Auth\VerificationController@resend')->name('verification.resend');

顺便说一句,您还可以禁用 Password ResetEmail Verification 路线:

 Auth::routes(['reset' => false, 'verify' => false]);

原文由 dparoli 发布,翻译遵循 CC BY-SA 4.0 许可协议

从 Laravel 5.7 开始,一个新的 $options 参数被引入到 Auth::routes() 方法中;通过它你可以传递一个数组来控制用户身份验证 所需 路由的生成(有效条目可以从 'register''reset''verify' 字符串文字)。

 Auth::routes(['register' => false]);

原文由 Irwing Reza 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题
logo
Stack Overflow 翻译
子站问答
访问
宣传栏