[英]Symfony - Pre login event listener
我需要在登录过程之前/登录过程开始时做一些动作。 是否有任何预登录事件或如何实施?
我正在使用Symfony3,并且具有表单登录名和OAuth登录名(HWIOAuthBundle)。
我尝试了此方法 ,但不适用于OAuth登录。 还是也可以为OAuth登录实现它?
通常,symfony中的所有登录内容都由kernel.request
事件的侦听器执行,主要是在Symfony安全组件的Firewall
侦听器内。 我还没有使用HWIOAuthBundle捆绑包,但似乎它也只使用了Symfony Security组件。
如果只想在登录/身份验证发生之前执行某些操作,则只需要向kernel.request
注册一个事件侦听器。请求的优先级比Firewall
侦听器高。
您可以按照Symfony文档(“ 事件”和“事件监听器” )中的说明进行操作。 首先在src/AppBundle/EventListener/YourListener.php
创建事件侦听器类:
namespace AppBundle\EventListener;
use Symfony\Component\HttpKernel\Event\GetResponseEvent;
class YourListener
{
public function onKernelRequest(GetResponseEvent $event)
{
// do stuff
}
}
然后在您的app/config/services.yml
文件中注册服务:
services:
AppBundle\EventListener\YourListener:
tags:
- { name: kernel.event_listener, event: kernel.request, priority: 9 }
根据此页面 ,防火墙的优先级为8。因此,事件侦听器的优先级应高于登录之前要执行的优先级(在上面的示例中,我使用了9)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.