Shopware6使用Store API如何获取sw-context-token?登录接口报错如何解决
调用账号登录接口返回错误如下:
"errors": [ { "status": "400", "code": "FRAMEWORK__MISSING_REQUEST_PARAMETER", "title": "Bad Request", "detail": "Parameter \"sw-context-token\" is missing.", "meta": { "parameters": { "parameterName": "sw-context-token" } } } ] }
报错原因
Shopware 的 Store API 所有端点(包括登录接口 /account/login)都要求请求头携带 sw-context-token 用于标识当前会话上下文。调用登录接口时未提前传入该参数,因此触发参数缺失报错。
注意:登录接口的作用是将匿名上下文 token 转换为绑定登录用户身份的上下文 token,并不是无前提生成初始上下文 token 的接口。
正确获取 sw-context-token 流程
- 第一步:获取初始匿名上下文 token
调用POST /store-api/context接口,该接口无需提前携带sw-context-token,仅需在请求头传入sw-access-key(即后台配置的 Store API 访问密钥),请求成功后响应头会返回第一个可用的匿名sw-context-token。 - 第二步:调用登录接口获取登录态上下文 token
将第一步拿到的匿名sw-context-token放入请求头,再调用POST /store-api/account/login接口,请求体传入账号密码参数:
请求成功后响应头会返回新的{ "username": "用户登录邮箱", "password": "用户登录密码" }sw-context-token,该 token 已绑定当前登录用户身份,后续所有 Store API 请求携带该 token 即可访问用户权限范围内的接口。
注意事项
- 所有 Store API 请求都必须携带请求头参数
sw-access-key,该参数和sw-context-token是两类不同的必填参数,不可混淆 - 上下文 token 存在有效时长,过期后需要重新按照上述流程获取新的 token
内容的提问来源于stack exchange,提问作者Sumit Khunger
相关产品推荐
相关产品推荐

