In first step, we require to update the migration file database/migrations/xxx_create_password_resets_table.php like bellow code:
public function up()
{
Schema::create('password_resets', function (Blueprint $table) {
$table->increments('id');
$table->string('email')->index();
$table->string('token');
$table->timestamps();
});
}
Step 2. Create PasswordReset model
Open your terminal or command prompt and run bellow command:
php artisan make:model PasswordReset
This command will create app/PasswordReset.php file, in this file set fillable inputs.
class PasswordReset extends Model
{
protected $fillable = [
'email', 'token'
];
}
Step 3. Create Notifications
We create two notifications PaswordResetRequest and PasswordResetSuccess, in your terminal or command prompt run bellow commands:
This command will create app/Notifications/PasswordResetRequest.php and app/Notifications/PasswordResetSuccess.php files.
In the PasswordResetRequest.php file add the next code:
<?phpnamespace App\Notifications;use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;class PasswordResetRequest extends Notification implements ShouldQueue
{
use Queueable; protected $token; /**
* Create a new notification instance.
*
* @return void
*/
public function __construct($token)
{
$this->token = $token;
} /**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
} /**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
$url = url('/api/password/find/'.$this->token); return (new MailMessage)
->line('You are receiving this email because we received a password reset request for your account.')
->action('Reset Password', url($url))
->line('If you did not request a password reset, no further action is required.');
} /**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
In the PasswordResetSuccess.php file add the next code:
<?phpnamespace App\Notifications;use Illuminate\Bus\Queueable;
use Illuminate\Notifications\Notification;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;class PasswordResetSuccess extends Notification implements ShouldQueue
{
use Queueable;
/**
* Create a new notification instance.
*
* @return void
*/
public function __construct()
{
//
} /**
* Get the notification's delivery channels.
*
* @param mixed $notifiable
* @return array
*/
public function via($notifiable)
{
return ['mail'];
} /**
* Get the mail representation of the notification.
*
* @param mixed $notifiable
* @return \Illuminate\Notifications\Messages\MailMessage
*/
public function toMail($notifiable)
{
return (new MailMessage)
->line('You are changed your password successful.')
->line('If you did change password, no further action is required.')
->line('If you did not change password, protect your account.');
}/**
* Get the array representation of the notification.
*
* @param mixed $notifiable
* @return array
*/
public function toArray($notifiable)
{
return [
//
];
}
}
Step 4. Create API Routes
We will create api routes. Laravel provide routes/api.php file for write web services route. So, let’s add new route on that file.