[{"data":1,"prerenderedAt":311},["ShallowReactive",2],{"navigation_docs_zh":3,"-zh-oauth-authorization-code-pkce":208,"-zh-oauth-authorization-code-pkce-surround":306},[4,22,40,50,64,82,180,194],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":21},"快速开始","i-lucide-rocket","\u002Fzh\u002Fgetting-started","zh\u002F1.getting-started",[10,13,17],{"title":5,"path":11,"stem":12},"\u002Fzh\u002Fgetting-started\u002Fquick-start","zh\u002F1.getting-started\u002F1.quick-start",{"title":14,"path":15,"stem":16},"信任模型","\u002Fzh\u002Fgetting-started\u002Ftrust-model","zh\u002F1.getting-started\u002F2.trust-model",{"title":18,"path":19,"stem":20},"大客户端到端接入指南","\u002Fzh\u002Fgetting-started\u002Fenterprise-integration","zh\u002F1.getting-started\u002F3.enterprise-integration",false,{"title":23,"icon":24,"path":25,"stem":26,"children":27,"page":21},"自研 Storefront","i-lucide-store","\u002Fzh\u002Fstorefront","zh\u002F2.storefront",[28,32,36],{"title":29,"path":30,"stem":31},"第三方 Storefront","\u002Fzh\u002Fstorefront\u002Fthird-party-storefront","zh\u002F2.storefront\u002F1.third-party-storefront",{"title":33,"path":34,"stem":35},"Turnstile 的信任边界","\u002Fzh\u002Fstorefront\u002Fchallenge-and-turnstile","zh\u002F2.storefront\u002F2.challenge-and-turnstile",{"title":37,"path":38,"stem":39},"第三方店铺前端公共 API","\u002Fzh\u002Fstorefront\u002Fpublic-api","zh\u002F2.storefront\u002F3.public-api",{"title":41,"icon":42,"path":43,"stem":44,"children":45,"page":21},"OAuth 与身份","i-lucide-key-round","\u002Fzh\u002Foauth","zh\u002F3.oauth",[46],{"title":47,"path":48,"stem":49},"第三方账号授权安全边界","\u002Fzh\u002Foauth\u002Fauthorization-code-pkce","zh\u002F3.oauth\u002F1.authorization-code-pkce",{"title":51,"icon":52,"path":53,"stem":54,"children":55,"page":21},"开发者平台","i-lucide-blocks","\u002Fzh\u002Fplatform","zh\u002F4.platform",[56,60],{"title":57,"path":58,"stem":59},"应用、版本、安装与 Scope","\u002Fzh\u002Fplatform\u002Fapps-installations-scopes","zh\u002F4.platform\u002F1.apps-installations-scopes",{"title":61,"path":62,"stem":63},"Origin、Redirect、反向代理与环境","\u002Fzh\u002Fplatform\u002Fsecurity-and-environments","zh\u002F4.platform\u002F2.security-and-environments",{"title":65,"icon":66,"path":67,"stem":68,"children":69,"page":21},"运行时扩展","i-lucide-workflow","\u002Fzh\u002Fruntime","zh\u002F5.runtime",[70,74,78],{"title":71,"path":72,"stem":73},"安装级 Webhook","\u002Fzh\u002Fruntime\u002Fwebhooks","zh\u002F5.runtime\u002F1.webhooks",{"title":75,"path":76,"stem":77},"库存同步","\u002Fzh\u002Fruntime\u002Finventory-sync","zh\u002F5.runtime\u002F2.inventory-sync",{"title":79,"path":80,"stem":81},"自动发货 Provider","\u002Fzh\u002Fruntime\u002Fauto-fulfillment","zh\u002F5.runtime\u002F3.auto-fulfillment",{"title":83,"icon":84,"path":85,"stem":86,"children":87,"page":21},"API 参考","i-lucide-braces","\u002Fzh\u002Freference","zh\u002F6.reference",[88,91,95],{"title":83,"path":89,"stem":90},"\u002Fzh\u002Freference\u002Fapi","zh\u002F6.reference\u002F1.api",{"title":92,"path":93,"stem":94},"错误、幂等与限流","\u002Fzh\u002Freference\u002Ferrors-and-limits","zh\u002F6.reference\u002F2.errors-and-limits",{"title":96,"path":97,"stem":98,"children":99,"page":21},"Endpoint 目录","\u002Fzh\u002Freference\u002Foperations","zh\u002F6.reference\u002F3.operations",[100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176],{"title":101,"path":102,"stem":103},"读取公开运行配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-runtime-config","zh\u002F6.reference\u002F3.operations\u002F01.get-public-runtime-config",{"title":105,"path":106,"stem":107},"读取公开站点启动配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-bootstrap","zh\u002F6.reference\u002F3.operations\u002F02.get-public-bootstrap",{"title":109,"path":110,"stem":111},"读取公开联系渠道","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-contact","zh\u002F6.reference\u002F3.operations\u002F03.get-public-contact",{"title":113,"path":114,"stem":115},"按语言读取当前已发布法律正文","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-legal-documents","zh\u002F6.reference\u002F3.operations\u002F04.list-public-legal-documents",{"title":117,"path":118,"stem":119},"读取店铺已发布装修","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-storefront-decoration","zh\u002F6.reference\u002F3.operations\u002F05.get-public-storefront-decoration",{"title":121,"path":122,"stem":123},"读取店铺公开安全配置","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-store-security-config","zh\u002F6.reference\u002F3.operations\u002F06.get-public-store-security-config",{"title":125,"path":126,"stem":127},"搜索可公开销售商品","\u002Fzh\u002Freference\u002Foperations\u002Fsearch-public-products","zh\u002F6.reference\u002F3.operations\u002F07.search-public-products",{"title":129,"path":130,"stem":131},"读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-categories","zh\u002F6.reference\u002F3.operations\u002F08.list-public-categories",{"title":133,"path":134,"stem":135},"读取安装级凭据绑定身份","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-identity","zh\u002F6.reference\u002F3.operations\u002F09.get-installation-credential-identity",{"title":137,"path":138,"stem":139},"读取安装级凭据就绪与阻塞事实","\u002Fzh\u002Freference\u002Foperations\u002Fget-installation-credential-readiness","zh\u002F6.reference\u002F3.operations\u002F10.get-installation-credential-readiness",{"title":141,"path":142,"stem":143},"读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-products","zh\u002F6.reference\u002F3.operations\u002F11.list-public-products",{"title":145,"path":146,"stem":147},"按 slug 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-product","zh\u002F6.reference\u002F3.operations\u002F12.get-public-product",{"title":149,"path":150,"stem":151},"读取公开店铺资料","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant","zh\u002F6.reference\u002F3.operations\u002F13.get-public-merchant",{"title":153,"path":154,"stem":155},"读取店铺公开商品","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-products","zh\u002F6.reference\u002F3.operations\u002F14.list-public-merchant-products",{"title":157,"path":158,"stem":159},"读取店铺公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-public-merchant-categories","zh\u002F6.reference\u002F3.operations\u002F15.list-public-merchant-categories",{"title":161,"path":162,"stem":163},"读取店铺公开商品详情","\u002Fzh\u002Freference\u002Foperations\u002Fget-public-merchant-product","zh\u002F6.reference\u002F3.operations\u002F16.get-public-merchant-product",{"title":165,"path":166,"stem":167},"读取当前 API Key 的标识与 scope","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-identity","zh\u002F6.reference\u002F3.operations\u002F17.get-api-key-identity",{"title":169,"path":170,"stem":171},"通过 API Key 读取公开分类","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-categories","zh\u002F6.reference\u002F3.operations\u002F18.list-api-key-catalog-categories",{"title":173,"path":174,"stem":175},"通过 API Key 读取公开商品目录","\u002Fzh\u002Freference\u002Foperations\u002Flist-api-key-catalog-products","zh\u002F6.reference\u002F3.operations\u002F19.list-api-key-catalog-products",{"title":177,"path":178,"stem":179},"通过 API Key 读取公开商品","\u002Fzh\u002Freference\u002Foperations\u002Fget-api-key-catalog-product","zh\u002F6.reference\u002F3.operations\u002F20.get-api-key-catalog-product",{"title":181,"icon":182,"path":183,"stem":184,"children":185,"page":21},"示例","i-lucide-code-xml","\u002Fzh\u002Fexamples","zh\u002F7.examples",[186,190],{"title":187,"path":188,"stem":189},"最小 Nuxt Storefront","\u002Fzh\u002Fexamples\u002Fnuxt-storefront","zh\u002F7.examples\u002F1.nuxt-storefront",{"title":191,"path":192,"stem":193},"Webhook 验签","\u002Fzh\u002Fexamples\u002Fwebhook-verification","zh\u002F7.examples\u002F2.webhook-verification",{"title":195,"icon":196,"path":197,"stem":198,"children":199,"page":21},"版本与支持","i-lucide-life-buoy","\u002Fzh\u002Foperations","zh\u002F8.operations",[200,204],{"title":201,"path":202,"stem":203},"版本、迁移与变更记录","\u002Fzh\u002Foperations\u002Fversions-and-migrations","zh\u002F8.operations\u002F1.versions-and-migrations",{"title":205,"path":206,"stem":207},"支持与安全披露","\u002Fzh\u002Foperations\u002Fsupport-and-security","zh\u002F8.operations\u002F2.support-and-security",{"id":209,"title":47,"body":210,"description":296,"extension":297,"links":298,"meta":299,"navigation":303,"path":48,"seo":304,"stem":49,"__hash__":305},"docs_zh\u002Fzh\u002F3.oauth\u002F1.authorization-code-pkce.md",{"type":211,"value":212,"toc":290},"minimark",[213,216,223,247,252,255,276,279,282],[214,215,47],"h1",{"id":47},[217,218,219],"blockquote",{},[220,221,222],"p",{},"状态：安全协议边界已公开；OAuth endpoint、token schema、DPoP 与 refresh-token rotation 尚未通过 API 安全审计，不提供 endpoint、curl 或 token exchange 示例。",[220,224,225,226,230,231,234,235,238,239,242,243,246],{},"用户只能在官方 Ayalink authorization domain 输入邮箱、密码与 MFA。第三方不得反代、嵌入或仿冒 Ayalink 登录页，不得收集账号因素，也不得接收或转发 Ayalink 全局 session Cookie。第三方授权只允许 Authorization Code + PKCE；每次尝试使用高熵 ",[227,228,229],"code",{},"state","、",[227,232,233],{},"nonce"," 和 ",[227,236,237],{},"code_verifier","，只接受 ",[227,240,241],{},"S256","，回调必须是精确登记的 HTTPS ",[227,244,245],{},"redirect_uri","。",[248,249,251],"h2",{"id":250},"session-与-grant-不相同","Session 与 grant 不相同",[220,253,254],{},"Ayalink 全局 session 只服务 Ayalink 自有域。第三方 app grant 是独立、最小且可撤销的授权，必须限定到特定 app、installation、store\u002Fresource、audience 与用户同意的 scope；它不能升级为平台 session，也不能证明其他店铺或资源的所有权。",[220,256,257,258,230,261,264,265,230,268,271,272,275],{},"第三方不得把 access token、refresh token、authorization code 或 verifier 写入 URL、",[227,259,260],{},"localStorage",[227,262,263],{},"sessionStorage","、IndexedDB、分析、日志、错误报告、客服工单或录屏。需要持久会话时采用同源 BFF：BFF 只保存本应用自己的 OAuth grant，并向本应用签发 ",[227,266,267],{},"HttpOnly",[227,269,270],{},"Secure","、适当 ",[227,273,274],{},"SameSite"," 的会话 Cookie；它不能转发 Ayalink Cookie，也不能要求用户输入 Ayalink 密码或 MFA。",[248,277,278],{"id":278},"识别钓鱼并自救",[220,280,281],{},"恶意反代可能复制页面外观、使用同形域名、终止 TLS、注入脚本并记录全部输入。授权前核对浏览器地址栏中的官方 authorization domain；不要通过聊天、邮件或第三方页面输入 Ayalink 凭据。若怀疑受骗：立即关闭页面，从官方入口撤销对应 app\u002Finstallation grant，退出 Ayalink 会话，更新密码并重新配置 MFA，然后通过官方安全渠道报告。不要把 token、Cookie 或验证码发给第三方。",[220,283,284,285,289],{},"DPoP、refresh-token rotation、token-family replay detection 与用户 grant 管理入口当前均为",[286,287,288],"strong",{},"未开放\u002F待审计","，不能据此设计生产依赖。API Reference 也会保持零 OAuth endpoint，直到 API 提供通过安全审计的 public-only artifact。",{"title":291,"searchDepth":292,"depth":292,"links":293},"",2,[294,295],{"id":250,"depth":292,"text":251},{"id":278,"depth":292,"text":278},"使用官方授权域、PKCE S256 和隔离的 app grant，防止恶意反代与账号凭据泄漏。","md",null,{"sourceGuide":300,"sourceHash":301,"sourceLocale":302},"oauth-developer-guide","b0c5e9b7dbff3d903c5b6ebccc42873e965852e9eafb8804570c40440a829ee9","zh",true,{"title":47,"description":296},"1fKdwn7o5b8aIVeGOjNCZiO13Em0mwlrvxZzgIk1M9U",[307,309],{"title":37,"path":38,"stem":39,"description":308,"children":-1},"由权威 public-only artifact 生成的店铺前端公共 API 入口。",{"title":57,"path":58,"stem":59,"description":310,"children":-1},"使用不可变应用版本和店铺绑定安装实现最小权限授权。",1785955320533]