Hyp*_*ion 3 symfony web symfony4
因此,我使用的是symfony 4,并设法在用户的数据库表中添加了一个名为“有效”的字段,如果有效等于0,则不会激活该帐户,反之亦然。因此,我想做的是,只要帐户未处于活动状态的用户尝试登录,就会显示一条消息或警报,并告诉他该帐户当前处于非活动状态。当活动用户连接时没有任何问题。我在这里不使用FOSUserBundle。那我可以手动做吗?
您可以使用用户检查器来完成。
例如。:
namespace App\Security;
use App\Entity\User;
use Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException;
use Symfony\Component\Security\Core\User\UserCheckerInterface;
use Symfony\Component\Security\Core\User\UserInterface;
class UserChecker implements UserCheckerInterface
{
public function checkPreAuth(UserInterface $user)
{
if (!$user instanceof User) {
return;
}
if (!$user->isActive()) {
throw new CustomUserMessageAuthenticationException(
'Inactive account cannot log-in.'
);
}
}
public function checkPostAuth(UserInterface $user)
{
$this->checkPreAuth($user);
}
}
Run Code Online (Sandbox Code Playgroud)
启用检查器:
security:
firewalls:
main:
// skipped for brevity
user_checker: App\Security\UserChecker
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |