【问题标题】:Forgotten Password form - Yii2 - Basic忘记密码表格 - Yii2 - 基本
【发布时间】:2016-11-17 09:31:42
【问题描述】:

我需要一个线索,如何让一个被遗忘的电子邮件“表单”向某个用户(电子邮件箱)发送代码,当他单击“代码”重置密码时,他正在网站中重定向,然后他更新了他的“忘记密码”,我在“站点”文件夹中创建了 forgot.php 页面,但有人可以给我一些线索,SiteController 等中的逻辑必须是什么。

forgot.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(); ?>

【问题讨论】:

  • 检查高级模板。我为 REST 应用程序做了类似的事情,这是一个不同的案例,但我确实从高级模板中获取了所有内容。如果我记得很清楚,它是关于添加到 User 类的 2 个操作、2 个模型和 1 或 2 个方法。代码清晰易懂。
  • 您可以使用此扩展进行用户管理、注册和登录。 https://github.com/dektrium/yii2-user
  • @SalemOuerdani 我从高级模板中获取所有内容时遇到了很多错误:D

标签: email yii2 forgot-password


【解决方案1】:

在控制器中:

  1. 通过上述电子邮件表单中的电子邮件检查数据库中的用户,是否存在?
  2. 存在->生成reset_token+timestamp,并发送email给用户link+token+timestamp+email
  3. 用户访问链接,显示新密码+重复密码的表单。但您需要按时间设置令牌有效期(例如:30 分钟)。
  4. 如果令牌有效,用户可以更改密码。否则,再次重定向到页面重置

【讨论】:

    猜你喜欢
    • 2017-02-18
    • 1970-01-01
    • 2012-07-25
    • 1970-01-01
    • 1970-01-01
    • 2012-12-20
    • 2013-05-17
    • 2011-08-26
    • 2015-12-31
    相关资源
    最近更新 更多