当我使用注册页面进行注册时,我收到的电子邮件中的链接可以正常工作。
当我改用$user->sendEmailVerificationNotification()
我在中看到的时vendor\laravel\framework\src\Illuminate\Auth\Listeners\SendEmailVerificationNotification.php,它不起作用。
我收到了电子邮件,但是当我单击验证链接时,我被重定向到登录页面,并且用户没有得到验证。
用例:我的系统有一个超级用户,可以添加用户,我希望向该用户发送电子邮件以进行验证。
任何帮助,将不胜感激。
此答案假设您已经设置了 Laravel 的Authentication和Email Verification。
当用户在应用程序上注册时,控制器默认使用该Illuminate\Foundation\Auth\RegistersUser特征。请注意该方法中发生的附加功能register(),还要注意生成了一个\Illuminate\Auth\Events\Registered 事件,该事件依次触发侦听器 SendEmailVerificationNotification(您当前从中获取代码的位置)。
对于您的自定义类,您可能会重用Illuminate\Foundation\Auth\RegistersUser其上的特征,但这可能会感觉很奇怪,因为您的类可能不是控制器,并且特征涉及额外的特定于控制器的逻辑。
相反,您可以尝试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));
Run Code Online (Sandbox Code Playgroud)
更多信息:
| 归档时间: |
|
| 查看次数: |
426 次 |
| 最近记录: |