使用 SLAS 私人用戶端

Shopper Login and API Access (SLAS) API 用戶端允許您的應用程式對購物者進行驗證和授權。SLAS 用戶端有兩種類型:公用用戶端和私人用戶端。

與公用用戶端相比,SLAS 私人用戶端具有多項優勢,包括:

  • 預先授權訪客購物者要求存取商店,從而加快頁面載入速度。
  • 允許使用 SLAS 公用用戶端不可用的功能,包括無密碼登入、密碼重設。請參閱私人 SLAS 用戶端使用案例

若要利用 SLAS 私人用戶端,專案必須能夠安全地儲存用戶端密碼。

如果專案在用戶端執行且必須直接與 SLAS 通訊,請考慮使用公用用戶端。

PWA Kit 3.5 及更高版本支援使用 SLAS 公用用戶端和私人用戶端。

PWA Kit 3.5 之前的所有 PWA 版本僅支援 SLAS _公用_用戶端。

如果您現有的 PWA Kit 網站使用 SLAS 公用用戶端,我們鼓勵您繼續閱讀並考慮切換為私人用戶端。

在執行本指南的命令之前,請以實際值取代預留位置。預留位置的格式如下:$PLACEHOLDER。

使用私人用戶端時,應注意不要將用戶端密碼暴露給購物者和用戶端瀏覽器。

為協助保護用戶端密碼,PWA Kit Retail React App 透過使用環境變數,將密碼儲存在伺服器端。想瞭解如何儲存用戶端密碼,請參閱設定環境變數

概括而言,您將執行以下操作來為 PWA Kit 網站設定 SLAS 私人用戶端。

  • 建立 SLAS 私人用戶端
  • 設定 PWA Kit
  • 設定環境變數

首先,請完成Shopper API 授權設定 API 存取中的指示,建立您的 SLAS 私人用戶端。

建立 SLAS 私人用戶端後,請按照以下步驟,將其用於 PWA Kit 網站:

  1. 更新到 PWA Kit v3.5 或更高版本。
  2. ssr.js 中,將傳遞給 runtime.createHandler 的選項的 useSLASPrivateClient 屬性設定為 true
  3. _app-config/index.js 中,將 <CommerceAPIProvider>enablePWAKitPrivateClient prop 設為 true
  4. PWA Kit 設定檔中,將 commerceAPI clientId 設定為 SLAS 私人用戶端 ID。
  5. 在您的環境中,將 PWA_KIT_SLAS_CLIENT_SECRET 環境變數設定為您的 SLAS 私人用戶端密碼。
  1. PWA Kit 設定檔中,將 commerceAPI clientId 設定為 SLAS 私人用戶端 ID。
  2. 在您的環境中,將 PWA_KIT_SLAS_CLIENT_SECRET 環境變數設定為您的 SLAS 私人用戶端密碼。

執行以下命令,以在使用中命令提示字元中本機設定 PWA_KIT_SLAS_CLIENT_SECRET 環境變數:

  • 在 Mac / Unix 上,執行 export PWA_KIT_SLAS_CLIENT_SECRET=$YOUR_CLIENT_SECRET
  • 在 Windows 上,執行 set PWA_KIT_SLAS_CLIENT_SECRET=$YOUR_CLIENT_SECRET

在本機開發環境中,您需要更永久地設定 PWA_KIT_SLAS_CLIENT_SECRET,以便在開啟新的命令提示字元時,將其自動包含。

在 Mac / Unix 上,您可以在電腦的 .bashrc 檔案中設定 PWA_KIT_SLAS_CLIENT_SECRET 環境變數,來完成此操作。 在 Windows 上,您可以在 [控制台] -> [系統] -> [進階] -> [環境變數] 設定 PWA_KIT_SLAS_CLIENT_SECRET 環境變數,來完成此操作。

如果您在 Managed Runtime 上遠端執行 PWA Kit 網站,則可以在替換變數以與您的環境相符後,在終端機中執行以下命令來設定 PWA_KIT_SLAS_CLIENT_SECRET 環境變數。

想進一步瞭解如何取得 Managed Runtime API 金鑰與遠端環境的其他屬性,請參閱我們的推送和部署套件指南

如需更多資訊,請參閱環境變數

除了上述的 PWA Kit 設定步驟之外,在同時使用 PWA Kit 和 SFRA 的分階段推出網店中,您還需要更新 Plugin SLAS 以使用您的 SLAS 私人用戶端。有關如何設定 SLAS 私人用戶端以與 SFRA 配合使用的說明,請參閱 Plugin SLAS readme

如果您要擴大 PWA Kit 實作以使用需要私人用戶端 (例如無密碼登入) 的其他 SLAS 端點,則可以使用 runtime.createHandlerapplySLASPrivateClientToEndpoints 選項來擴大可用的端點集:

  • 如果您看到對 SLAS /authorize 的 HTTP 400 呼叫,則 PWA Kit 網站正在使用 SLAS 公用用戶端流程和您的私人用戶端 ID。在 _app-config/index.js 檔案中,將 CommerceAPIProvider 內的 enablePWAKitPrivateClient prop 設為 true

  • 在本機開發環境中,如果 ssr.js 中啟用了 useSLASPrivateClient 屬性且未設定 PWA_KIT_SLAS_CLIENT_SECRET 環境變數,則 PWA Kit 伺服器將無法啟動。將環境變數設定為 SLAS 用戶端密碼以繼續。

  • 將 PWA Kit 網站部署到 Managed Runtime 後,如果您在呼叫 SLAS 時看到 HTTP 501 錯誤,則可能表示 PWA_KIT_SLAS_CLIENT_SECRET 環境變數尚未設定。設定後,請等待幾分鐘以套用變更。