我正在尝试实现一个额外的身份验证层,目的是仅在用户具有特定状态时对其进行身份验证。如果状态不同,我想显示自定义登录错误(您的帐户已被暂停)并且根本不对用户进行身份验证,类似于凭据错误时会发生的情况,但会显示不同的错误消息。
到目前为止,我尝试了两种选择:
我在侦听器中添加了一个检查“InteractiveLoginEvent”。在这里,我可以检查用户状态并设置一个 flash 错误消息,但我看不到重定向回登录页面的正确方法是什么,因为这个事件没有响应方法,除了使用我肯定的 header() 调用想避免。
我实现了一个自定义投票器,将“access_decision_manager”启动设置为“一致”,如果状态不允许用户进行身份验证,则返回“ACCESS_DENIED”。到目前为止一切顺利,用户无法访问资源,但我看到他仍然获得了身份验证。我绝对不希望那样。
我不确定我是否遗漏了什么,或者我是否走错了方向。