我正在使用通知向用户发送电子邮件,其中有人为其创建了帐户。我想弄清楚的是如何将它们发送到密码/重置页面。我需要添加一个令牌来将密码重置为密码/重置地址的末尾。如果不是,当用户尝试重置密码时,他们会收到无效的令牌错误。那么我需要添加到url的末尾以便有一个有效的令牌?
$passwordReset = 'localhost/password/reset'
如何添加有效令牌以将密码重置为代码上方代码的末尾?
答案 0 :(得分:1)
我相信网址应该是
localhost/password/reset/{token}
例如:
localhost/password/reset/15966e3b4460a10a025d2506609e2857d89eea6eed77e898e41922873111afa4
要使其正常工作,必须激活所有四个密码路由(如果使用默认的laravel auth):
Route::get('password/reset', 'Auth\ForgotPasswordController@showLinkRequestForm');
Route::post('password/email', 'Auth\ForgotPasswordController@sendResetLinkEmail');
Route::get('password/reset/{token}', 'Auth\ResetPasswordController@showResetForm');
Route::post('password/reset', 'Auth\ResetPasswordController@reset');
答案 1 :(得分:1)
如果你想发送带有令牌的邮件,你可以做到 你可以使用
Route::post('/PasswordReset', 'ResetPasswordController@GetToken');
然后通过邮件发送令牌 您可以在哪里保存令牌,甚至可以保存它 你可以使用Username有一个名为bcrypt()的函数; 你可以用它来散列他的用户名 并且它会给你很长的代币,但我不喜欢因为代币不会改变
我更喜欢将新密码发送给他并让他登录然后更改密码 你可以使用str_random(8); 它将生成8个带字母的随机数
尝试帮助你 首先,你必须配置你的邮件去Config / mail.php 并在驱动程序后添加此内容
'driver' => env('MAIL_DRIVER', 'smtp'),
'stream' => [
'ssl' => [
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true,
],
],
第二个转到你.env文件将此更改为您的主机详细信息列表尝试使用gmail one
MAIL_DRIVER = SMTP
MAIL_HOST = smtp.gmail.com
MAIL_PORT = 587
MAIL_USERNAME=yourgmailMail@gmail.com
MAIL_PASSWORD =你的密码
MAIL_ENCRYPTION = TLS
第三步转到你的Controller,你将在列表中发送邮件功能假设它的名字是SendMassEmailController This is the Whole Controller
最后一件事是路线 转到web.php
Route::post('/SendMassEmail','SendMassEmailController@SendMassEmail');
终于好运,玩得开心