簡體   English   中英

如何在 Shopware 6 Storefront Controller 或 Subscriber 中檢查用戶是否已登錄?

[英]How to check if user is logged in, in Shopware 6 Storefront Controller or Subscriber?

我正在尋找有關如何在 Shopware 6 店面中檢查用戶是否已登錄的正確方法。 我正在編寫一個插件(不是應用程序),並希望在控制器和/或訂閱者中使用它。

我是不是該:

  1. 使用店面 API? (但是怎么做?哪條路?)
  2. 使用默認的symfony方式? (isGranted) - 但有哪些角色? 角色處理不一樣嗎?
  3. 使用一些內置功能,例如我可以通過 Dependeny Injection 獲取的特殊服務(但哪個?)?

SalesChannelContext有一個$customer (可通過getCustomer()訪問)屬性。 此上下文通常被注入到 Storefront 控制器和任何 Storefront 事件的訂閱者中。

僅當當前用戶已登錄時才設置。

您還可以在店面控制器方法的@Route注釋中使用_loginRequired_loginRequiredAllowGuest標志。 如果您只想允許登錄的客戶訪問,這很方便,因為這會自動將注銷的用戶重定向到登錄頁面並在他們登錄后返回原點。

/**
 * @Route("/my/custom/page", name="frontend.custom.page", methods={"GET"}, defaults={"_loginRequired"=true, "_loginRequiredAllowGuest"=true})
 */

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM