Symfony 的分析器中不存在 lexik_jwt_authentication.on_jwt_created

Posted

技术标签:

【中文标题】Symfony 的分析器中不存在 lexik_jwt_authentication.on_jwt_created【英文标题】:The `lexik_jwt_authentication.on_jwt_created` is not present in Symfony's profiler 【发布时间】:2018-01-18 21:54:40 【问题描述】:

我已经添加了这个监听器

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没有被调用!

【问题讨论】:

你的服务配置不错,问题不在这里。您是否尝试清除缓存? 是的。缓存已清除。该事件未出现。 你如何使用捆绑包?您是否使用内置的保护身份验证器?您的日志中有关于此事件的信息吗? 【参考方案1】:

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

JWTCreatedEvent 由 JWTManager 调度('lexik_jwt_authentication.jwt_manager` 服务)。如果您希望分派事件,请考虑使用该服务而不是直接使用编码器(它可能在下一个专业中变为私有,因此除非注入,否则无法从控制器访问)。

【讨论】:

以上是关于Symfony 的分析器中不存在 lexik_jwt_authentication.on_jwt_created的主要内容,如果未能解决你的问题,请参考以下文章

Symfony2 - 如何阻止 Form->handleRequest 清空帖子数据中不存在的字段

当供应商在 Symfony 2.1 中不受作曲家管理时,在哪里注册自动加载?

属性在模板中不存在,尽管它已分配

Symfony2 中的 Twig CamelCase 过滤器

路由在 Symfony 3.4 中不起作用

Webpack x Symfony 5 - 未定义 JQuery