用途:实现 Canva 预览版 Webhook 的接入流程,包括通知验签、路由、重放防御与幂等处理,适用于接收受支持通知类型的场景。
主要能力:使用 Canva 轮换的公共 JWK 集验证每条通知,再分别进行租户/资源授权与幂等处理。Webhook 仅用于出站通知,不能替代 Comments API 进行回复。
使用方式:先确认集成资格与预览审批状态、所需协作及通知专属 scope、已启用的通知类型;通过公开的 connect/keys 端点获取并缓存轮换的 Ed25519/OKP JWK 集,按大小写敏感的 key ID 选择,未知 key 仅重取一次;在解析动作前验证签名与文档化 token 声明,拒绝错误的 issuer/audience/时间/上下文,限制请求大小,日志中不保留原始签名 token;基于已验证的通知身份创建持久幂等键,执行保留窗口,重复通知仅确认不重复副作用;解析租户、用户/资源归属、通知类型、功能状态与应用策略;验证通过后仅持久化批准字段并入队,按当前文档返回协议响应,不等待下游副作用;记录验证类别、规范化类型、重复状态、队列结果、脱敏错误与处理器版本,安全死信并要求负责人审核重放。
认证:Canva Connect 调用使用后端通过 OAuth 2.0 Authorization Code 加 SHA-256 PKCE 获取的 Bearer 访问令牌,申请最小权限 scope,客户端密钥与令牌不得出现在浏览器可见状态,刷新需串行化并原子存储单次使用的替换刷新令牌。
限制:需具备合格集成与明确批准的预览使用;需受控 HTTPS 回调、必需 scope 与通知允许列表;需持久幂等存储、队列、保留策略与事件负责人。预览不合格时应禁用 Webhook 路径;key ID 未知时刷新一次并失败关闭;通知类型无法识别时仅隔离元数据并更新契约;重复投递时确认但不重放副作用。具体价格、平台支持范围等资料暂未提供。