如何在登录页面上显示错误消息而不呈现异常

时间:2019-06-06 20:47:26

标签: symfony authentication login

我正在使用UserChecker类测试帐户的激活,正在使用以下代码,但是我想显示登录页面上未激活的消息帐户,而不会引发异常:

Class UserChecker implements UserCheckerInterface
{
  public function checkPreAuth(UserInterface $user)
  {
     if (!$user instanceof AppUser) {
        return;
    }

   }

   public function checkPostAuth(UserInterface $user)
   {
    if (!$user instanceof AppUser) {
        return;
    }

    if (!$user->getIsActive()) {
        throw new \Exception("member not active");
    }

   }
 }

1 个答案:

答案 0 :(得分:0)

use Symfony\Component\Security\Core\Exception\LockedException;

Class UserChecker implements UserCheckerInterface
{
    public function checkPreAuth(UserInterface $user)
    {
        //.....
    }
    public function checkPostAuth(UserInterface $user)
    {
        if (!$user instanceof AppUser) {
            return;
        }

        if (!$user->getIsActive()) {
            $ex = new LockedException("member not active");
            $ex->setUser($user);
            throw $ex;
        }

    }
}

我不确定您的Symfony版本。