使用 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 _公用_用戶端。

Note

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

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

私人用戶端密碼 

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

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

設定 SLAS 私人用戶端 

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

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

此視頻演示如何為 PWA Kit 設置 SLAS 專用用戶端和 分階段無外設推出

::視頻{src=“FqwkbNxGVXVsLCxQDGMP3g”標題=:“可組合網店中的 SLAS 私有用戶端”類型=“vidyard”}

建立 SLAS 私人用戶端 

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

設定 PWA Kit 

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

  1. 如果尚未升級,請升級到 PWA Kit v3.5 或更高版本。

  2. 在 PWA Kit 設定檔config/default.js中,將 commerceAPI clientId 設定為 SLAS 私人用戶端 ID。

    1clientId: '$YOUR_SLAS_PRIVATE_CLIENT_ID',
  3. 在您的 _app-config/index.js 中,將 ” 的道具設定為 trueenablePWAKitPrivateClient

    1CommerceApiProvider enablePWAKitPrivateClient={true}
  4. ssr.js 中,將傳遞給 runtime.createHandler 的選項的 useSLASPrivateClient 屬性設定為 true

    1const options = {useSLASPrivateClient: true}
    2const {handler} = runtime.createHandler(options, callback)

設定環境變數 

本機環境 

執行以下命令,以在使用中命令提示字元中本機設定 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 環境變數,來完成此操作。

Note

MRT (Managed Runtime) 環境 

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

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

1curl "https://cloud.mobify.com/api/projects/$PROJECTID/target/$ENVIRONMENTID/env-var/" \
2  --request 'PATCH' \
3  --header 'Content-Type: application/json' \
4  --header 'Accept: application/json' \
5  --header "Authorization: Bearer $RUNTIME_ADMIN_API_KEY" \
6  --data '{ "PWA_KIT_SLAS_CLIENT_SECRET": {"value": "'$PWA_KIT_SLAS_CLIENT_SECRET'"} }'

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

分階段無頭式部署的設定 

此設置適用於使用外掛程式 SLAS 的混合網店。如果使用 混合身份驗證,則不適用。

Note

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

其他端點 

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

1const options = {
2  useSLASPrivateClient: true,
3  applySLASPrivateClientToEndpoints: /oauth2\/(token|passwordless\/(login|token))/
4}
5const {handler} = runtime.createHandler(options, callback)

疑難排解 

  • 如果您看到對 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 環境變數尚未設定。設定後,請等待幾分鐘以套用變更。

也請參閱