我需要一条线索,如何有一个被遗忘的电子邮件"表单"向某个用户(邮箱)发送代码,当他单击"代码"重置密码时,他正在重定向网站,然后他更新了他的"忘记密码",我忘记了.php"站点"文件夹中的页面,但有人可以给我一些线索,SiteController
中的逻辑等。
忘记了.php(忘记密码的表格)
<h1><?= Html::encode($this->title) ?></h1>
<?php $form = ActiveForm::begin(); ?>
<?= $form->field($model, 'email') ?>
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Submit', ['class' => 'btn btn-primary'])?>
</div>
</div>
<div>
<?php ActiveForm::end(); ?>
在控制器中:
- 从上面的电子邮件表单通过电子邮件检查数据库中的用户,是否存在?
- 存在 ->生成reset_token+时间戳,并向用户发送电子邮件 链接+令牌+时间戳+电子邮件
- 用户访问链接,显示新密码的表格+重复密码。但您需要按时间(例如:30 分钟)设置令牌有效性。
- 如果令牌有效,用户可以更改密码。 否则,再次重定向至"页面重置"诊断树