2

我想创建一个控制器,用于向特定客户组提供可下载文件。我需要对客户进行身份验证并检查他们是否获得授权。

我检查了上下文和 HTTP 标头,但我无法找到有关客户的有价值的数据。

什么是合适的方法?

4

2 回答 2

4

我能够使用 SalesChannelContext 检索客户。

我用了

$event->getSalesChannelContext()->getCustomer();
于 2022-01-27T16:19:56.497 回答
2

要将访问您自己的路线限制为仅登录的客户,您可以使用@LoginRequired注释,例如:

    /**
     * @LoginRequired()
     * @Route("/account", name="frontend.account.home.page", methods={"GET"})
     */
    public function index(Request $request, SalesChannelContext $context, CustomerEntity $customer): Response

在引擎盖下,注释还将检查 SalesChannelContext 的当前客户。

要获得当前客户的客户群,您提出的解决方案是要走的路:

$salesChannelContext->getCustomer()->getGroup();
于 2022-01-28T07:10:17.053 回答