Désactiver la réinitialisation du mot de passe dans Laravel
Désactiver la réinitialisation du mot de passe dans Laravel
-
Objectifs
- Être capable de désactiver la réinitialisation du mot de passe dans Laravel
-
Présentation
- La commande
php artisan make: auth
est utilisée pour créer de nouvelles applications. Il installera une vue de mise en page, des vues d’enregistrement et de connexion, ainsi que des routes pour tous les points de terminaison d’authentification. - Un
HomeController
sera également généré pour gérer les demandes post-connexion au tableau de bord de votre application. - Laravel est un Framework PHP open source conçu pour rendre le développement d’applications Web plus facile et plus rapide grâce à des fonctionnalités intégrées.
- Ces fonctionnalités font partie de ce qui rend Laravel si largement utilisé par les développeurs Web. Entre autres, on cite le système d’authentification
- Par défaut, la commande
php artisan make:auth
génère les pages de login/register Bootstrap, ainsi qu’un processus de réinitialisation du mot de passe oublié. - Mais il peut y avoir des moments où vous avez besoin de la partie authentification, mais vous ne voulez pas que les gens puissent s’inscrire sur votre site.
- Il peut s’agir d’un back-end privé pour lequel vous souhaiterez créer des utilisateurs manuellement, ou vous pouvez disposer d’outils internes pour inviter de nouveaux utilisateurs.
- Heureusement, il est assez facile de retirer l’enregistrement de l’échafaudage par défaut de Laravel.
- Si vous avez déjà installé une application laravel, les routes d’authentification sont activées. Et vous souhaitez utiliser uniquement des routes d’authentification, pas des routes d’enregistrement. Donc, ici, dans cet article, je vais vous expliquer comment désactiver la route d’enregistrement par défaut de laravel.
-
Réalisation
-
Méthode 1:
- Mais si vous voulez désactiver cette fonctionnalité, et avoir un autre mécanisme pour récupérer les mots de passe, il y a un autre paramètre dans le fichier routes/web.php à ajouter:
- Si cela ne fonctionne pas, dans ForgotPasswordController, vous verrez qu’un trait SendsPasswordResetEmails est utilisé, en ce sens que vous trouverez la fonction showLinkRequestForm que vous pouvez remplacer:
- et remplacez-le par une redirection pour revenir en arrière, ou un 404, ou autre chose que vous voulez.
- Vous n’aurez besoin que de définir la valeur du paramètre sur false dans la méthode Auth :: routes () comme étant donné ci-dessous.
-
Méthode 2:
- Dans cette méthode, nous créerons toutes les routes en utilisant la fonction d’authentification manuellement au lieu de les ajouter automatiquement par la méthode
Auth :: routes ()
. - Donc, si vous utilisez
Auth :: routes ()
dans le fichier routes/web.php, vous devrez le supprimer car nous n’avons pas besoin de route d’enregistrement. Nous allons créer tous les itinéraires manuellement et maintenant le fichier d’itinéraire ressemblera à ci-dessous.
/* 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')->name('password.update');
/* Email Verification Routes... */
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');