如何将哈希码发送到电子邮件以重置密码 yii2 basic?
How to send Hash code to email for reset password yii2 basic?
如何在 link 中生成散列字符串并通过电子邮件将其 link 发送给用户,以便他或她可以重置密码?
您可以从此函数生成唯一值或散列值
md5(uniqid(rand(), true));
将此值保存在数据库中(用户 table 中的 key 字段)。
使用我们创建的唯一值生成一个 url 并邮寄给用户。
当用户单击 link 从 link 获取参数并检查保存在数据库中的值。
在ForgotForm.php
public function sendEmail() {
$token = substr(base64_encode(sha1(mt_rand())), 0, 64);
$model = LoginUser::find()->where(['email' => $this->email])->one();
$model->setAttributes(['token' => $token]);
if ($model->save()) {
$mail = Yii::$app->mailer->compose('redirect', ['model' => $model])
->setFrom('rosensoul@gmail.com')
->setTo($model->email);
var_dump($mail);
}
}
在 redirect.php(在邮件文件夹中)
<div> <p> Please use this link to reset your password : <?= Url::to(["/site/reset", 'token' => $model->token], TRUE); ?> </p>
如何在 link 中生成散列字符串并通过电子邮件将其 link 发送给用户,以便他或她可以重置密码?
您可以从此函数生成唯一值或散列值
md5(uniqid(rand(), true));
将此值保存在数据库中(用户 table 中的 key 字段)。 使用我们创建的唯一值生成一个 url 并邮寄给用户。
当用户单击 link 从 link 获取参数并检查保存在数据库中的值。
在ForgotForm.php
public function sendEmail() {
$token = substr(base64_encode(sha1(mt_rand())), 0, 64);
$model = LoginUser::find()->where(['email' => $this->email])->one();
$model->setAttributes(['token' => $token]);
if ($model->save()) {
$mail = Yii::$app->mailer->compose('redirect', ['model' => $model])
->setFrom('rosensoul@gmail.com')
->setTo($model->email);
var_dump($mail);
}
}
在 redirect.php(在邮件文件夹中)
<div> <p> Please use this link to reset your password : <?= Url::to(["/site/reset", 'token' => $model->token], TRUE); ?> </p>