在Symfony中如何使用LexicJWT在EventSubscriber中获取用户

台球

我是Symfony的新手。我使用LexicJWT令牌。

final class ProductCreateSubscriber implements EventSubscriberInterface
{
    private $entityManager;
    private $hostRepository;

    public function __construct(EntityManagerInterface $entityManager, HostRepository $hostRepository)
    {
        $this->entityManager = $entityManager;
        $this->hostRepository = $hostRepository;
    }

    public static function getSubscribedEvents()
    {
        return [
            KernelEvents::VIEW => ['createHost', EventPriorities::PRE_WRITE],
        ];
    }

    public function createHost(GetResponseForControllerResultEvent $event)
    {
        $product = $event->getControllerResult();
        $method = $event->getRequest()->getMethod();

        - - - - - -- - - I NEED USER HERE - - - - -  - -    

        if (!$product instanceof Product || Request::METHOD_POST !== $method) {
            return;
        } 

        $parsedUrl = parse_url($product->getUrl());
        if (isset($parsedUrl['host'])) {
            $host = $this->hostRepository->findOneByName($parsedUrl['host']);
            if (!$host) {
                $host = $this->hostRepository->createByName($parsedUrl['host']);
            }
            $product->setHost($host);
        }
    }
}

我如何在createHost方法中获取用户?如何在EventSubsriber中获得用户或令牌?找不到有关此的任何信息?我在哪里可以读到它?

尼康德

JWT令牌通过标头传递,因此您需要在事件中访问标头。

您可以尝试像这样访问标头:

$request = $event->getRequest();
$headers = $request->headers->all();

您可以从标头中获取包含JWT令牌的Authentication标头,并将其解码以获取用户。

更新:正如@Jared Farrish所述,请确保令牌有效!

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何使用VBA在Excel中获取用户的语言?

如何使用Net Core在DbContext中获取用户信息

如何使用 HTML 获取用户输入以在 JS 中处理?

如何使用iOS SDK在Quickblox中获取用户ID?

如何从嵌套请求中获取用户?

在Symfony 3中的SQLFilter中获取用户

如何在 Symfony 2.8 中的表单存储库中获取用户对象

Symfony2在导航中获取用户名

如何从用户请求中获取用户代理?

如何从Firebase Android中的用户对象获取用户对象

如何从所有用户中获取用户的排名

在Meteor中创建用户期间如何获取用户ID?

如何从Facebook中的用户名获取用户ID

如何从 django 用户模型中获取用户名

如何使用 Lodash keyBy 从整个用户对象中获取用户 ID -> 标题?

如果用户已使用条纹结帐完成付款,如何从FB Messenger中获取用户ID?

如何检查用户是否通过护照认证(使用laravel-passport从令牌中获取用户)

获取访问令牌后如何使用outh在twitter中获取用户个人资料?

如何使用 process.stdin 在 nodejs 中获取用户输入以获取 Hackerearth 代码

如何在 Array 中显示值并使用 java 在 Array 中获取用户输入?

如何获取用户输入并将其存储在向量中?

如何从Android中的Facebook获取用户性别和生日

如何从firebase flutter获取用户模型类中的数据

如何在woocommerce中按日期获取用户订单?

如何在RichTextBox中获取用户编写的文本的TextRange

如何从 OU 内的组中获取用户帐户?

如何在 / 之后的 url 中获取用户名?

如何从集合中获取用户自己的数据?

如何在登录php中获取用户值?