的`lexik_jwt_authentication.on_jwt_created`是不存在的Symfony的探查

的`lexik_jwt_authentication.on_jwt_created`是不存在的Symfony的探查

问题描述:

我已经添加了这个监听器的`lexik_jwt_authentication.on_jwt_created`是不存在的Symfony的探查

acme_api.event.jwt_created_listener: 
    class: AppBundle\EventListener\JWTCreatedListener 
    tags: 
     - { name: kernel.event_listener, event: lexik_jwt_authentication.on_jwt_created, method: onJWTCreated } 

但该事件时,不会调度(不可见)从symfony中的探查。我正在尝试使用它来自定义令牌过期时间。方法onJWTCreated不叫!

+0

你的服务配置不错,问题不在这里。您是否尝试清除缓存? – Mcsky

+0

是的。清除缓存。该事件没有出现。 – sensorario

+0

你如何使用捆绑包?你是否使用内置的防盗认证器?你的日志里有关于这个事件的东西吗? – chalasr

如您之前的问题Why my jwt tokens never expire?所示,您没有通过Symfony安全系统(config)使用捆绑包,而是使用控制器的低级API“手动”传递令牌。

JWTCreatedEvent由JWTManager('lexik_jwt_authentication.jwt_manager`服务)调度。如果您想要分派事件,请考虑使用该服务,而不是直接使用编码器(这可能在下一个主要版本中变为私有,因此无法通过控制器访问,除非注入)。