使用 SLAS 专用客户端

购物者登录和 API 访问 (SLAS) API 客户端允许您的应用程序对购物者进行身份验证和授权。SLAS 客户端有两种类型:公共客户端和专用客户端。

与公共客户端相比,SLAS 专用客户端具有多项优势,包括:

  • 预先授权访客购物者请求访问商店,从而缩短页面加载时间。
  • 允许使用 SLAS 公共客户端不可用的功能,包括无密码登录和密码重置。请参阅专用 SLAS 客户端用例

要利用 SLAS 专用客户端,项目必须能够安全地存储客户端密码。

如果项目在客户端运行并且必须直接与 SLAS 通信,请考虑使用公共客户端。

PWA Kit 3.5 及更高版本支持使用 SLAS 公共和专用客户端。

PWA Kit 3.5 之前的所有 PWA 版本仅支持 SLAS _公共_客户端。

如果您有一个使用 SLAS 公共客户端的现有 PWA Kit 站点,我们鼓励您继续阅读并考虑切换到专用客户端。

在运行本指南中的命令之前,请将所有占位符替换为实际值。占位符的格式如 $PLACEHOLDER。

使用专用客户端时,应注意不要将客户端密码暴露给购物者和客户端浏览器。

为了帮助保护客户端密码,PWA Kit Retail React App 通过使用环境变量在服务器端存储密码。有关如何存储客户端密码的信息,请参阅设置环境变量

从高层次上讲,您将执行以下操作,以使用 PWA Kit 站点设置 SLAS 专用客户端。

  • 创建 SLAS 专用客户端
  • 配置 PWA Kit
  • 设置环境变量

首先,完成购物者 API 授权设置 API 访问中的说明,以创建 SLAS 专用客户端。

创建 SLAS 专用客户端后,请按照以下步骤将其与 PWA Kit 站点一起使用:

  1. 更新到 PWA Kit v3.5 或更高版本。
  2. 在您的 ssr.js 中,将选项传递的 useSLASPrivateClient 属性设置为 runtime.createHandlertrue
  3. 在您的 _app-config/index.js 中,将 <CommerceAPIProvider> 的道具 enablePWAKitPrivateClient 设置为 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 的分阶段启动网店上,还需要更新插件 SLAS 以使用 SLAS 专用客户端。有关如何设置 SLAS 专用客户端以使用 SFRA 的说明,请参阅插件 SLAS 自述文件

如果要扩展 PWA Kit 实现以使用需要专用客户端(如无密码登录)的其他 SLAS 端点,则可以使用以下 runtime.createHandler 选项 applySLASPrivateClientToEndpoints 扩展可用的端点集:

  • 如果看到对 SLAS /authorize 的 HTTP 400 调用,则 PWA Kit 站点正在将 SLAS 公共客户端流与专用客户端 ID 搭配使用。在您的 _app-config/index.js 文件中,将 CommerceAPIProvider 中的 enablePWAKitPrivateClient 道具设置为 true

  • 在本地开发环境中,如果在 ssr.js 中启用了 useSLASPrivateClient 属性并且尚未设置 PWA_KIT_SLAS_CLIENT_SECRET 环境变量,则 PWA Kit 服务器将无法启动。将环境变量设置为 SLAS 客户端密码以继续。

  • 将 PWA Kit 站点部署到 Managed Runtime 后,如果在调用 SLAS 时看到 HTTP 501 错误,则可能意味着尚未设置 PWA_KIT_SLAS_CLIENT_SECRET 环境变量。设置后,请等待几分钟以应用更改。