Home Backend Development PHP Tutorial How to implement Laravel password reset function

How to implement Laravel password reset function

Feb 24, 2018 am 09:24 AM
laravel Function accomplish

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');
}
Copy after login

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');
}
Copy after login

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));
}
Copy after login

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!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Laravel - Artisan Commands Laravel - Artisan Commands Aug 27, 2024 am 10:51 AM

Laravel - Artisan Commands - Laravel 5.7 comes with new way of treating and testing new commands. It includes a new feature of testing artisan commands and the demonstration is mentioned below ?

Laravel - Pagination Customizations Laravel - Pagination Customizations Aug 27, 2024 am 10:51 AM

Laravel - Pagination Customizations - Laravel includes a feature of pagination which helps a user or a developer to include a pagination feature. Laravel paginator is integrated with the query builder and Eloquent ORM. The paginate method automatical

How to get the return code when email sending fails in Laravel? How to get the return code when email sending fails in Laravel? Apr 01, 2025 pm 02:45 PM

Method for obtaining the return code when Laravel email sending fails. When using Laravel to develop applications, you often encounter situations where you need to send verification codes. And in reality...

Laravel schedule task is not executed: What should I do if the task is not running after schedule: run command? Laravel schedule task is not executed: What should I do if the task is not running after schedule: run command? Mar 31, 2025 pm 11:24 PM

Laravel schedule task run unresponsive troubleshooting When using Laravel's schedule task scheduling, many developers will encounter this problem: schedule:run...

In Laravel, how to deal with the situation where verification codes are failed to be sent by email? In Laravel, how to deal with the situation where verification codes are failed to be sent by email? Mar 31, 2025 pm 11:48 PM

The method of handling Laravel's email failure to send verification code is to use Laravel...

How to implement the custom table function of clicking to add data in dcat admin? How to implement the custom table function of clicking to add data in dcat admin? Apr 01, 2025 am 07:09 AM

How to implement the table function of custom click to add data in dcatadmin (laravel-admin) When using dcat...

Laravel - Dump Server Laravel - Dump Server Aug 27, 2024 am 10:51 AM

Laravel - Dump Server - Laravel dump server comes with the version of Laravel 5.7. The previous versions do not include any dump server. Dump server will be a development dependency in laravel/laravel composer file.

Laravel Redis connection sharing: Why does the select method affect other connections? Laravel Redis connection sharing: Why does the select method affect other connections? Apr 01, 2025 am 07:45 AM

The impact of sharing of Redis connections in Laravel framework and select methods When using Laravel framework and Redis, developers may encounter a problem: through configuration...

See all articles