使用JS执行注册操作时如何查找获取sw-context-token?
JS开发注册功能时获取sw-context-token的方法
sw-context-token是Shopware 6生态下前端接口校验用的上下文令牌,注册功能开发时可以通过以下三种方式获取:
- 直接读取浏览器本地存储
正常访问Shopware站点后,令牌会默认持久化存储在浏览器本地,JS可以直接读取:
调试时也可以直接打开浏览器开发者工具的「应用」面板,展开对应域名下的本地存储项,直接看到// 优先读localStorage存储 let swContextToken = localStorage.getItem('sw-context-token'); // 部分场景令牌存在sessionStorage,做兜底读取 if (!swContextToken) { swContextToken = sessionStorage.getItem('sw-context-token'); }sw-context-token的键值。 - 从接口响应头捕获新令牌
首次访问、本地无有效令牌的场景下,调用任意Store API(包括注册接口)时,服务端会在响应头里返回新生成的sw-context-token,发请求时直接读取存储即可:// 以fetch调用注册接口为例 const registerResponse = await fetch('/store-api/account/register', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(registerFormData) }); // 提取响应头里的上下文令牌 const newContextToken = registerResponse.headers.get('sw-context-token'); // 存到本地后续接口复用 if (newContextToken) { localStorage.setItem('sw-context-token', newContextToken); } - 调试阶段快速核对令牌值
打开浏览器开发者工具的「网络」面板,筛选任意/store-api/前缀的请求,点击请求查看「请求头」板块,就能看到当前请求携带的sw-context-token,和参考截图位置完全一致。
注意:调用注册接口时不需要提前手动生成令牌,如果请求没带有效
sw-context-token,服务端会自动生成新令牌随响应返回,直接读取存储即可。

内容的提问来源于stack exchange,提问作者user18628737
相关产品推荐
相关产品推荐

