English
自研 Storefront

第三方 Storefront

在保持 Ayalink 身份、页面准入、缓存和挑战边界的前提下构建独立商城。

第三方 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:店铺对隐藏资源启用了防枚举语义;
  • 429CHALLENGE_REQUIRED:渲染有范围的挑战,原请求最多安全重试一次。

公开响应只能按服务端声明的完整键缓存,包括店铺、市场、语言、策略版本和认证类别。用户态响应必须 private/no-store,禁止进入共享 CDN 缓存。

浏览器永远不接收 client secret,也不得保存 access/refresh token,或代理、共享 Ayalink 全局 session Cookie。未来登录只能发生在平台开通材料确认的官方 authorization domain,并使用 Authorization Code + PKCE S256、精确 redirect URI、statenonce

需要持久会话时采用同源 BFF。BFF 只保存本 app/installation/store/resource/audience 的最小 OAuth grant,并向自己的前端提供安全应用会话 Cookie;它不能转发 Ayalink Cookie。OAuth API 尚待安全审计,因此账号授权安全边界最小 Nuxt 示例不提供登录 endpoint 或 token exchange 代码。

Copyright © 2026