使用 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 站点一起使用:
- 更新到 PWA Kit v3.5 或更高版本。
- 在您的
ssr.js
中,将选项传递的useSLASPrivateClient
属性设置为runtime.createHandler
至true
: - 在您的
_app-config/index.js
中,将<CommerceAPIProvider>
的道具enablePWAKitPrivateClient
设置为true
。 - 在 PWA Kit 配置文件 中,将 commerceAPI clientId 设置为 SLAS 专用客户端 ID。
- 在您的环境中,将
PWA_KIT_SLAS_CLIENT_SECRET
环境变量设置为 SLAS 专用客户端密码。
- 在 PWA Kit 配置文件 中,将 commerceAPI clientId 设置为 SLAS 专用客户端 ID。
- 在您的环境中,将
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
环境变量。设置后,请等待几分钟以应用更改。