正在将重置密码移动到后端Yii2


Moving reset password to backend, Yii2

我只在后端拥有用户授权(针对管理员),我正在尝试将密码重置功能转移到后端。

''backend''views''site''login.php

<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>
            //fields for username and password
            <div class="form-group">
                <?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
            </div>
        <?php ActiveForm::end(); ?>
        <div style="color:#999;margin:1em 0">
               If you forgot your password you can <?= Html::a('reset it', ['request-password-reset']) ?>.
           </div>

''后端''控制器''站点控制器.php

public function actionLogin()
{
    if (!'Yii::$app->user->isGuest) {
        return $this->goHome();
    }
    $model = new LoginForm();
    if ($model->load(Yii::$app->request->post()) && $model->login()) {
        return $this->goBack();
    } else {
       //enters here instead
        return $this->render('login', [
            'model' => $model,
        ]);
    }
}
public function actionRequestPasswordReset()
    {
       //not entering here
        $model = new PasswordResetRequestForm(); //placed in 'common'models
        if ($model->load(Yii::$app->request->post()) && $model->validate()) {
            if ($model->sendEmail()) {
                Yii::$app->session->setFlash('success', 'Check your email for further instructions.');
                return $this->goHome();
            } else {
                Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
            }
        }
        return $this->render('requestPasswordResetToken', [
            'model' => $model,
        ]);
    }

问题是,当我单击reset it时,站点会再次将我重定向到login.php,因此actionRequestPasswordReset()不会被激发。我是Yii的新手,如果有任何帮助,我将不胜感激。

更新控制器的访问控制过滤器,允许尚未登录的用户访问requestPasswordReset:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['request-password-reset'],
                    'allow' => true,
                    'roles' => ['?'],
                ],
                ...