Want to implement this function quickly? Just run php artisan make:auth under the newly installed Laravel application (if you have already executed this command, you can ignore it), and then visit http://your-app.dev/register or other assigned to the application in the browser URL, this command will generate everything needed for user login and registration, including password reset!
Most web applications provide the function of resetting passwords for users, and Laravel is no exception. Laravel provides convenient methods for sending password reset links and implementing password reset logic without you having to Repeat the implementation yourself in each application.
Note: Before using the password reset function provided by Laravel, the User model must use the Illuminate\Notifications\Notifiable trait.
Database related
Before starting, verify that the App\User model implements the Illuminate\Contracts\Auth\CanResetPassword contract. Of course, Laravel's own App\User model already implements this interface and uses the Illuminate\Auth\Passwords\CanResetPassword trait to include the methods needed to implement this interface.
Generate reset token table migration
Next, the table used to store password reset tokens must be created. Laravel already comes with the migration of this table, which is stored in database/migrations directory. So, all you have to do is run the migration:
php artisan migrate
This table is the password_resets:
routing
Laravel comes with Auth\ForgotPasswordController and Auth\ResetPasswordController controllers (these two controller classes will be automatically generated through the php artisan make:auth command), which are used to send password reset link emails and reset user passwords respectively. Function. The routes required to reset the password have been automatically generated through the make:auth command:
php artisan make:auth
The corresponding route is defined in the auth method of Illuminate\Routing\Router:
View
Like routing, the view files required to reset the password are also generated through the make:auth command. These view files are located in
In the resources/views/auth/passwords directory, you can modify the generated files as needed.
Reset Password
After defining the reset user password route and view, you only need to access this entry route through /password/reset in the browser. The ForgotPasswordController that comes with the framework already contains the logic of sending password reset link emails, and the ResetPasswordController contains the logic of resetting user passwords:
Enter the registration email and click Send Password Reset If you set the link, a password reset link will be sent to the email address:
When you open the email address, you will receive a password reset email like this:
Click the reset password button to enter the password reset page:
After filling in the form and submitting it, you can reset the password.
After the password is reset, the user will automatically log in to the application and be redirected to /home. You can customize the jump link after a successful password reset by defining the redirectTo attribute of ResetPasswordController:
protected $redirectTo = '/dashboard';
Note: By default, password reset The token is valid for one hour. You can change the validity time by modifying the expire option in the config/auth.php file.
Customization
Custom authentication Guard
In the configuration file auth.php, you can configure multiple "guards" to implement independent authentication based on multi-user tables. For authentication, you can use the guard of your choice by overriding the guard method on the built-in ResetPasswordController controller, which will return a guard instance:
use Illuminate\Support\Facades\Auth; protected function guard() { return Auth::guard('guard-name'); }
Custom password broker
In the configuration file auth.php, you can configure multiple passwords to reset the password broker of multiple user tables. Similarly, you can use the broker method of your choice by overriding the broker methods in the built-in ForgotPasswordController and ResetPasswordController controllers. Broker:
use Illuminate\Support\Facades\Password;
/** * 获取密码重置期间所使用的broker. * * @return PasswordBroker * @translator laravelacademy.org */ protected function broker() { return Password::broker('name'); }
Custom password reset email
You can easily edit and send the password reset link to the user The notification class implements a custom password reset email. To implement this function, you need to override the sendPasswordResetNotification method on the User model. In this method, you can use any notification class you like to send notifications. This method receives the first The first parameter is password reset $token:
/** * 发送密码重置通知. * * @param string $token * @return void */ public function sendPasswordResetNotification($token) { $this->notify(new ResetPasswordNotification($token)); }
Related recommendations:
Forgot mysql root password reset method
Three steps to reset MySQL root password
Forgot mysql database root user password reset method_MySQL
The above is the detailed content of How to implement Laravel password reset function. For more information, please follow other related articles on the PHP Chinese website!

The article explains how to create, implement, and use interfaces in PHP, focusing on their benefits for code organization and maintainability.

The article discusses the differences between crypt() and password_hash() in PHP for password hashing, focusing on their implementation, security, and suitability for modern web applications.

Article discusses preventing Cross-Site Scripting (XSS) in PHP through input validation, output encoding, and using tools like OWASP ESAPI and HTML Purifier.

Autoloading in PHP automatically loads class files when needed, improving performance by reducing memory use and enhancing code organization. Best practices include using PSR-4 and organizing code effectively.

PHP streams unify handling of resources like files, network sockets, and compression formats via a consistent API, abstracting complexity and enhancing code flexibility and efficiency.

The article discusses managing file upload sizes in PHP, focusing on the default limit of 2MB and how to increase it by modifying php.ini settings.

The article discusses nullable types in PHP, introduced in PHP 7.1, allowing variables or parameters to be either a specified type or null. It highlights benefits like improved readability, type safety, and explicit intent, and explains how to declar

The article discusses the differences between unset() and unlink() functions in programming, focusing on their purposes and use cases. Unset() removes variables from memory, while unlink() deletes files from the filesystem. Both are crucial for effec


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

ZendStudio 13.5.1 Mac
Powerful PHP integrated development environment

MantisBT
Mantis is an easy-to-deploy web-based defect tracking tool designed to aid in product defect tracking. It requires PHP, MySQL and a web server. Check out our demo and hosting services.

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

Notepad++7.3.1
Easy-to-use and free code editor

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software
