Exemplo n.º 1
0
 /**
  * @return string
  */
 public function actionLogin()
 {
     // 已经登录,直接跳到首页面
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     // 初始化登录表单
     $model = new LoginForm();
     // 用户点击登录按钮,提交数据
     if ($model->load($_POST)) {
         if ($model->inActive()) {
             // 先判断是否是未激活
             $this->setLoginAttempts($this->getLoginAttempts() + 1);
             Yii::$app->getSession()->setFlash('inactive', Yii::t('auth.user', 'This user is not inactive, please check your email for the activing user link.'));
         } else {
             if ($model->login()) {
                 // 校验成功
                 $this->setLoginAttempts(0);
                 // 登录成功,清除登录失败次数
                 return $this->goBack();
                 // 返回用户之前的链接
             } else {
                 // 如果登录失败,则失败次数+1
                 $this->setLoginAttempts($this->getLoginAttempts() + 1);
             }
         }
     }
     // 如果登录次数过多,则出现验证码
     if ($this->getLoginAttempts() >= $this->module->attemptsBeforeCaptcha) {
         $model->scenario = 'withCaptcha';
     }
     // 显示登录页面
     return $this->render('login', ['model' => $model]);
 }
Exemplo n.º 2
0
 public function actionLogin()
 {
     if (!\Yii::$app->user->isGuest) {
         $this->goHome();
     }
     $model = new LoginForm();
     //make the captcha required if the unsuccessful attempts are more of thee
     if ($this->getLoginAttempts() >= $this->module->attemptsBeforeCaptcha) {
         $model->scenario = 'withCaptcha';
     }
     if ($model->load($_POST) and $model->login()) {
         $this->setLoginAttempts(0);
         //if login is successful, reset the attempts
         return $this->goBack();
     }
     //if login is not successful, increase the attempts
     $this->setLoginAttempts($this->getLoginAttempts() + 1);
     return $this->render('login', ['model' => $model]);
 }