用途:本技能覆盖 InsForge 与第三方服务商的集成,目前支持两类:认证服务商(通过 JWT claims 实现行级安全 RLS)与支付 facilitator(x402 HTTP 支付协议)。每个服务商在 references/<provider>.md 下有独立指南。
认证服务商:Clerk(JWT Template 直接签发,无需服务端签名)、Auth0(post-login Action 注入 claims)、WorkOS(AuthKit 中间件 + 服务端 jsonwebtoken 签名)、Kinde(token 定制)、Stytch(会话 token)、Better Auth(自托管于你的 InsForge Postgres,无 SaaS 与按 MAU 费用,需连接串加小型桥接路由,migrate 后需一次性 REVOKE 以封闭 PostgREST 暴露)。
通用流程:服务商签发含用户 ID 的 JWT;通过 createClient() 的 accessToken 传入(旧别名 edgeFunctionToken);InsForge 在 SQL 中经 auth.jwt() 暴露 claims;RLS 策略使用 requesting_user_id() 函数。
支付 facilitator(OKX x402):服务端返回 402 与 PAYMENT-REQUIRED 头中 base64 编码的 JSON challenge;客户端用稳定币 EIP-712 域签 EIP-3009 授权;服务端转发至 facilitator 的 /verify 与 /settle;结算后写入 InsForge 表并加实时触发器。OKX x402 使用 X Layer 上的 USDG,付款方零 gas。
用法:先确认项目所用服务商,阅读对应参考指南,按服务商步骤配置仪表盘、服务端与客户端代码、数据库与环境变量。JWT 密钥通过 npx -y @insforge/cli secrets get JWT_SECRET 获取。
限制与注意:所有认证服务商的用户 ID 均为字符串,user_id 须用 TEXT 列,RLS 用 requesting_user_id() 而非 auth.uid();accessToken 为静态字符串,Clerk 短时 token 需在首次同用户登录后用 client.setAccessToken(token, AuthChangeEvent.TOKEN_REFRESHED) 同步刷新。支付侧须检查结算后 insert 的 error,tx_hash 加 UNIQUE,核对 EIP-712 域(USDG on X Layer 为 name: "Global Dollar", version: "1"),本地开发用 MOCK_OKX_FACILITATOR,生产禁用 mock。其他细节暂未提供。