profitra/api.profitra.id/app/Notifications/QueuedResetPassword.php

38 lines
1.2 KiB
PHP

<?php
namespace App\Notifications;
use Illuminate\Auth\Notifications\ResetPassword;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
/**
* Queued (see QueuedVerifyEmail for why) and pointed at the SPA's own
* reset-password page instead of the stock `password.reset` named route,
* which doesn't exist here — the frontend reads the token/email query
* params and POSTs them to /v1/auth/reset-password itself.
*/
class QueuedResetPassword extends ResetPassword implements ShouldQueue
{
use Queueable;
public $tries = 3;
public $backoff = 5;
public function toMail(mixed $notifiable): MailMessage
{
$frontendUrl = config('app.frontend_url');
$url = "{$frontendUrl}/auth/reset-password?token={$this->token}&email=".urlencode($notifiable->getEmailForPasswordReset());
return (new MailMessage)
->subject('Reset Kata Sandi Anda - Profitra')
->view('emails.reset-password', [
'name' => $notifiable->full_name ?? $notifiable->username,
'url' => $url,
'expireMinutes' => config('auth.passwords.users.expire'),
]);
}
}