38 lines
1.2 KiB
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'),
|
|
]);
|
|
}
|
|
}
|