gpt4 book ai didi

php - Laravel 5.7 - 如何动态触发用户验证电子邮件?

转载 作者:可可西里 更新时间:2023-11-01 13:23:45 25 4
gpt4 key购买 nike

当我使用注册页面注册时,我收到的电子邮件中的链接可以正常使用。

当我改为使用 $user->sendEmailVerificationNotification()就像我在 vendor\laravel\framework\src\Illuminate\Auth\Listeners\SendEmailVerificationNotification.php 中看到的那样,它不起作用。

我收到了电子邮件,但是当我点击验证链接时,我被重定向到登录页面并且用户没有得到验证。

用例:我的系统有一个 super 用户,可以添加用户,我希望发送该电子邮件让用户验证自己。

如有任何帮助,我们将不胜感激。

最佳答案

这个答案假设你已经设置了 Laravel 的 AuthenticationEmail Verification .

当用户在应用程序上注册时, Controller 默认使用 Illuminate\Foundation\Auth\RegistersUser 特征。注意那里的 register() 方法中发生的附加功能,还要注意 \Illuminate\Auth\Events\Registered event生成,进而触发 listener SendEmailVerificationNotification(您当前从中获取代码的位置。)

对于您的自定义类,您可能会在其上重用 Illuminate\Foundation\Auth\RegistersUser 特性,但这可能会让人感觉很奇怪,因为您的类可能不是 Controller 并且该特性涉及额外的 Controller -特定逻辑。

相反,您可以尝试从 Illuminate\Foundation\Auth\RegistersUser::register() 中提取一些代码并在您的新类中使用它。

所以,类似于:

// If you do not yet have a new user object.
$user = \App\User::create([
'name' => $data['name'],
'email' => $data['email'],
'password' => \Illuminate\Support\Facades\Hash::make($data['password']),
]);

// Fire the event now with the user you want to receive an email.
event(new \Illuminate\Auth\Events\Registered($user));

更多信息:

关于php - Laravel 5.7 - 如何动态触发用户验证电子邮件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54640448/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com