完善首页邮箱找回密码流程
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* 文件功能:前台用户邮箱找回密码通知
|
||||
*
|
||||
* 自定义找回密码邮件标题与正文文案,统一跳转到前台独立重置页。
|
||||
*/
|
||||
|
||||
namespace App\Notifications;
|
||||
|
||||
use Illuminate\Notifications\Messages\MailMessage;
|
||||
use Illuminate\Notifications\Notification;
|
||||
|
||||
/**
|
||||
* 类功能:向用户发送邮箱重置密码邮件。
|
||||
*/
|
||||
class ResetUserPasswordNotification extends Notification
|
||||
{
|
||||
/**
|
||||
* 创建通知实例时保存本次重置令牌。
|
||||
*/
|
||||
public function __construct(
|
||||
#[\SensitiveParameter]
|
||||
public string $token
|
||||
) {}
|
||||
|
||||
/**
|
||||
* 指定该通知只通过邮件渠道发送。
|
||||
*
|
||||
* @return array<int, string>
|
||||
*/
|
||||
public function via(mixed $notifiable): array
|
||||
{
|
||||
return ['mail'];
|
||||
}
|
||||
|
||||
/**
|
||||
* 构建找回密码邮件内容。
|
||||
*/
|
||||
public function toMail(mixed $notifiable): MailMessage
|
||||
{
|
||||
return (new MailMessage)
|
||||
->subject('和平聊吧 - 邮箱找回密码')
|
||||
->greeting('您好,'.$notifiable->username.':')
|
||||
->line('系统收到了这次密码找回申请,请点击下方按钮重新设置登录密码。')
|
||||
->line('该链接仅适用于当前绑定邮箱的账号,请勿转发给他人。')
|
||||
->action('立即重置密码', $this->buildResetUrl($notifiable))
|
||||
->line('重置链接将在 '.config('auth.passwords.'.config('auth.defaults.passwords').'.expire').' 分钟后失效。')
|
||||
->line('如果这不是您本人发起的操作,直接忽略本邮件即可。');
|
||||
}
|
||||
|
||||
/**
|
||||
* 生成前台独立重置密码页面地址。
|
||||
*/
|
||||
private function buildResetUrl(mixed $notifiable): string
|
||||
{
|
||||
return url(route('password.reset', [
|
||||
'token' => $this->token,
|
||||
'email' => $notifiable->getEmailForPasswordReset(),
|
||||
], false));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user