关于 b2c-slas
b2c-slas 指导通过 `b2c` 命令行管理 SLAS 顾客认证客户端与凭据,适用于店面、无头商务和 API 测试工作。内容涵盖客户端生命周期操作及顾客令牌获取。
主要功能
- 01列出并查看 SLAS 客户端
- 02创建、更新和删除客户端
- 03配置客户端范围与重定向地址
- 04获取顾客访问令牌
- 05从 CLI 配置解析参数
适用场景
- 01为组合式店面配置客户端
- 02使用自定义范围测试 Custom API
- 03创建专用集成测试客户端
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ salesforcecommercecloud/ b2c-developer-tooling --skill b2c-slas安装后在 Claude Code 中输入/b2c-slas确认已加载。
附带文件evals/trigger-evals.json
详细介绍
B2C SLAS 技能
使用 b2c CLI 插件管理 SLAS(Shopper Login and API Access Service)API 客户端和凭据。
重要提示: SLAS 用于店面和无头商务中的 购物者(客户)身份验证。对于 管理员令牌(OCAPI、Admin API),请使用
b2c auth token,参见b2c-config技能。
提示: 如果未全局安装
b2c,请改用npx @salesforce/b2c-cli(例如,npx @salesforce/b2c-cli slas client list)。
配置
tenantId、shortCode、slasClientId 和 slasClientSecret 等值会从 dw.json / SFCC_* 环境变量 / 活动实例 / 配置插件中解析。以下示例展示了最简用法;仅在需要覆盖已配置的值时添加标志——通常无需将这些值作为标志传入。如果缺少必需值,CLI 会给出可操作的错误提示,指出对应的标志、环境变量和配置键。
运行 b2c setup inspect,查看解析后的配置以及每个值的来源(编写脚本时使用 --json;默认情况下,密钥会保持掩码状态)。有关优先级规则和故障排除,请参见 b2c-cli:b2c-config 技能。
相关覆盖项:
--tenant-id/SFCC_TENANT_ID/tenantId--short-code/SFCC_SHORTCODE/shortCode--slas-client-id/SFCC_SLAS_CLIENT_ID/slasClientId--slas-client-secret/SFCC_SLAS_CLIENT_SECRET/slasClientSecret
定位现有客户端的命令(get、update、delete 和 open)在省略位置参数中的客户端 ID 时,会使用已配置的 slasClientId。位置参数中的客户端 ID 优先于配置。
适用场景
需要管理 SLAS 客户端的常见场景:
- 测试自定义 API:创建具有自定义作用域(例如
c_loyalty)的客户端,以测试自定义 API 端点 - PWA/无头开发:为可组合店面配置客户端
- 集成测试:创建具有特定作用域集的专用测试客户端
示例
列出 SLAS 客户端
# list all SLAS clients for the configured tenant
b2c slas client list
# JSON output
b2c slas client list --json
# target a different tenant than the active config
b2c slas client list --tenant-id abcd_123
获取 SLAS 客户端详情
# get details for the configured SLAS client
b2c slas client get
# override the configured client ID
b2c slas client get my-client-id
创建 SLAS 客户端
# create a new SLAS client with default scopes (auto-generates UUID client ID)
b2c slas client create --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback
# create with a specific client ID and custom scopes
b2c slas client create my-client-id --channels RefArch --scopes sfcc.shopper-products,sfcc.shopper-search --redirect-uri http://localhost:3000/callback
# create a public client
b2c slas client create --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --public
# create client without auto-creating tenant (if you manage tenants separately)
b2c slas client create --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --no-create-tenant
# output as JSON (useful for capturing the generated secret)
b2c slas client create --channels RefArch --default-scopes --redirect-uri http://localhost:3000/callback --json
注意:默认情况下,如果租户不存在,系统会自动创建。
**警告:**客户端作用域请使用 --scopes(复数),而非 --auth-scope(单数)。--auth-scope 标志是用于 OAuth 作用域的全局身份验证选项。
创建用于测试自定义 API 的客户端
测试需要自定义作用域的自定义 API 时:
# Create a private client with custom scope for testing
# Replace c_my_scope with your API's custom scope from schema.yaml
b2c slas client create \
--channels RefArch \
--default-scopes \
--scopes "c_my_scope" \
--redirect-uri http://localhost:3000/callback \
--json
# Output includes client_id and client_secret - save these for token requests
**重要提示:**SLAS 客户端中的自定义作用域必须与自定义 API 的 schema.yaml 安全部分中定义的作用域一致。
获取购物者令牌
使用 b2c slas token 获取用于 API 测试的购物者访问令牌。--site-id 仅适用于当前请求,必须在每次调用时提供。
该命令会应用共享 HTTP 中间件,包括来自 SFCC_EXTRA_HEADERS(一个 JSON 对象)或 --extra-headers 的标头,并将其用于授权、登录和令牌请求。
JSON 输出会将令牌字段嵌套在 response 下(例如,.response.accessToken)。
对于身份验证失败,请使用 --log-level debug 捕获 HTTP 状态和 SLAS 响应关联 ID。
# Guest token with auto-discovery (finds first public SLAS client)
b2c slas token --site-id RefArch
# Registered customer token
b2c slas token --site-id RefArch --shopper-login [email protected] --shopper-password secret
# JSON output (includes refresh token, expiry, usid, etc.)
b2c slas token --site-id RefArch --json
# Use token in a subsequent API call
TOKEN=$(b2c slas token --site-id RefArch)
curl -H "Authorization: Bearer $TOKEN" "https://$SHORTCODE.api.commercecloud.salesforce.com/..."
# Override the SLAS client explicitly (e.g., targeting a private client for client_credentials flow)
b2c slas token --site-id RefArch --slas-client-id my-client --slas-client-secret sk_xxx
# Registered customer token against a private client (registered login is always PKCE-protected;
# the client secret is sent as Basic auth in addition to the PKCE code_verifier)
b2c slas token --site-id RefArch --slas-client-id my-client --slas-client-secret sk_xxx \
--shopper-login [email protected] --shopper-password secret
更新 SLAS 客户端
# update the configured client's display name
b2c slas client update --name "New Name"
# override the configured client ID and rotate its secret
b2c slas client update my-client-id --secret new-secret-value
# add scopes (appends to existing by default)
b2c slas client update my-client-id --scopes sfcc.shopper-baskets
# replace scopes instead of appending
b2c slas client update my-client-id --scopes sfcc.shopper-baskets --replace
# replace channels
b2c slas client update my-client-id --channels RefArch,SiteGenesis --replace
删除 SLAS 客户端
# delete the configured SLAS client
b2c slas client delete
# override the configured client ID
b2c slas client delete my-client-id
打开 SLAS 客户端
# open the configured SLAS client in the Admin UI
b2c slas client open
# override the configured client ID
b2c slas client open my-client-id
更多命令
运行 b2c slas --help,查看 slas 主题下可用命令和选项的完整列表。
相关技能
b2c:b2c-custom-api-development- 创建需要 SLAS 身份验证的自定义 APIb2c-cli:b2c-scapi-custom- 检查自定义 API 注册状态