每日整理真实提问 356 个问题 · 726 个回答 需要系统性的技术文档?看 Shopify 技术百科 1000 篇 → 400-873-8117
已解决 提问于 24 天前

嵌入式应用里拿不到 session token

2 个回答 2,305 次浏览 应用与扩展 最后活跃 20 天前
91

用 App Bridge 的 getSessionToken() 一直返回空或报错,嵌入在后台的 iframe 里加载不出来。

陈
陈工提问者
Shopify 认证开发者 · 专注主题与 Liquid
24 天前提问 · 已收到 2 个回答

2 个回答

已采纳 · 提问者确认解决
57

先把判断放在前面:Session token 需要正确的 App Bridge 初始化参数和 CSP frame-ancestors 头。

1处理顺序

  1. 确认页面引入了 App Bridge 的脚本并传入了 apiKey。
  2. 服务端响应头设置 Content-Security-Policy: frame-ancestors https://*.myshopify.com https://admin.shopify.com。
  3. token 有有效期,每次请求前重新获取,不要缓存太久。
  4. 本地开发要用 CLI 的隧道地址,直接 localhost 会被 iframe 拦。
  5. 在控制台打印 shopify 对象,确认初始化成功。
验收:iframe 内能拿到 token,请求后端鉴权通过。
风 风格技术团队 回答于 23 天前
21

另一个常见原因:浏览器禁用了第三方 cookie,老方案依赖 cookie 就会失效。Session token 方案本身不依赖 cookie,这也是它被推荐的原因。

泽 阿泽 · 前端工程师 · 22 天前

你的处理方式是什么?

写下你实际验证过的步骤,比「我也有这个问题」有用得多。当前版本为静态展示,提交后会由团队整理并回复。

描述你遇到的现象、店铺环境(主题 / 套餐 / 应用)、已经试过哪些操作……
我要单独提问 工作日 10 分钟内回复,可直接加微信 fenggejishu