第三方 Storefront
第三方 Storefront
公开目录读取由 API 决定店铺、市场与发布状态。自定义域不得根据商品 ID、slug、搜索结果、缓存 JSON-LD、sitemap 或 OpenGraph 响应推断准入。
托管跳转模型
flowchart LR
A[第三方店铺:读取与展示公开目录] --> B{用户动作}
B -->|登录或注册| C[Ayalink 官方授权域:尚未开放]
B -->|结账或支付| D[Ayalink 官方托管结账:尚未开放]
C --> E[审核通过的精确 return URL]
D --> E
E --> A
- 目录读取:已开放。 只调用第三方店铺前端公共 API列出的 operation。
- 托管登录/注册:尚未开放。 当前 artifact 没有 authorization endpoint 或官方 URL,不提供可执行跳转示例。
- 托管结账/支付:尚未开放。 当前 artifact 没有 checkout/payment endpoint、订单意图或 return 协议,不提供可执行跳转示例。
- 返回:需要平台开通。 未来只能返回平台审核通过的精确 HTTPS return URL;不得接受开放重定向或客户端临时覆盖。
第三方不得收集 Ayalink 邮箱、密码或 MFA,不得接收或转发 Ayalink 全局 Cookie,不得接触卡号、支付 token 或其他支付凭据,也不得 iframe、反代或仿冒 Ayalink 登录、注册、结账或支付页面。第三方站只展示目录并发起未来经公开契约批准的顶层跳转。
店铺保护页面或资源时,API 必须把同一策略应用于详情、价格、库存、媒体、结构化数据、SSR、搜索、sitemap 与缓存。客户端分别处理:
401:通过系统授权域登录,并只返回本应用 allowlist 内的路径;403:已登录用户缺少会员、角色、客户组、市场或 scope;404:店铺对隐藏资源启用了防枚举语义;429或CHALLENGE_REQUIRED:渲染有范围的挑战,原请求最多安全重试一次。
公开响应只能按服务端声明的完整键缓存,包括店铺、市场、语言、策略版本和认证类别。用户态响应必须 private/no-store,禁止进入共享 CDN 缓存。
浏览器永远不接收 client secret,也不得保存 access/refresh token,或代理、共享 Ayalink 全局 session Cookie。未来登录只能发生在平台开通材料确认的官方 authorization domain,并使用 Authorization Code + PKCE S256、精确 redirect URI、state 与 nonce。
需要持久会话时采用同源 BFF。BFF 只保存本 app/installation/store/resource/audience 的最小 OAuth grant,并向自己的前端提供安全应用会话 Cookie;它不能转发 Ayalink Cookie。OAuth API 尚待安全审计,因此账号授权安全边界与最小 Nuxt 示例不提供登录 endpoint 或 token exchange 代码。