【问题标题】:The `lexik_jwt_authentication.on_jwt_created` is not present in Symfony's profilerSymfony 的分析器中不存在 lexik_jwt_authentication.on_jwt_created
【发布时间】: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没有被调用!

【问题讨论】:

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

标签: php symfony jwt lexikjwtauthbundle


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2012-02-03
    • 2020-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多