禁用从Laravel重置密码

时间:2019-03-27 12:09:40

标签: php laravel

如何禁用密码重置?我需要防止在登录页面上重置密码。我该怎么办?

我尝试做:

Auth::routes(['register' => false, 'password.request' => false, 'password.reset' => false]);

但是不起作用。密码重置有效。

3 个答案:

答案 0 :(得分:1)

因为我还不能添加评论,所以我想添加到Omid Reza Heidari的评论中。使用Route :: post('password / reset','Auth \ ResetPasswordController @ reset');如果不使用-> name('password.update'),则使用默认视图时将导致错误“ Route [password.update]未定义”。因此,最后一条路线应该是

Route::post('password/reset', 'Auth\ResetPasswordController@reset')->name('password.update');

答案 1 :(得分:0)

更改

'password.reset' => false

收件人

'reset' => false

如果这不起作用,则在ForgotPasswordController中,您会看到使用了特征SendsPasswordResetEmails,因为您会发现函数showLinkRequestForm可以被覆盖:

public function showLinkRequestForm()
{
    return view('auth.passwords.email');
}

,然后将其替换为重定向以返回,或者返回404或您想要的其他内容。


或者,您可以覆盖路线。

答案 2 :(得分:0)

在:

之内
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');

并删除不需要的内容。