@ agenticprimitives/ 连接客户端
部分 代理先导 ——代理应用程序的开源信任底板:可以签名的身份,行为时间检查权限,所有者携带的证据. 开发者工具包 • 妇女 所有软件包
这个 依赖方 连接的一半。 依赖的应用程序不会使证书或OAuth请求本身:它手接
关闭到用户的中央原子 内容 (IdP)——主持证书仪式(wallet / Google /)
YouVersion / passkey)和监护权——并带回由SA署署名的放箭代表团. 标准OIDC
(单位:千美元)authorize → code → /token与无缝 FedCM 首个 前面 。 .
见 第295区, (中文(简体) ), 第230区/259区, (中文(简体) ), ADR-0019 (英语), (中文(简体) ), ADR-0021 (英语), (中文(简体) ), ADR-0032 (英语)。 。 。 .
为什么
YouVersion/ Google OAuth 客户端为 由登记在册的原籍如果依赖应用程序 来源于 OAuth 本身( 来源于它自己), 严格的提供者拒绝它 。 定律——和学说—— 是 Home 是单一的证书/ Outh 来源; 依赖应用程序只交换返回代码 。 这个 软件包是依赖边协议, 提取一次而不是复制每个应用程序.
使用量
import { createConnectClient, connectViaFedcm, connectViaPopup, connectViaRedirect } from '@agenticprimitives/connect-client';
// The app injects its domain.ts — NO hostnames live in this package (ADR-0021).
const connect = createConnectClient({
clientId: 'demo-web',
delegate: '0x…', // the relying-site backend account the Home scopes its grant to
redirectUri: () => window.location.origin + '/',
resolveAuthOrigin: (name) => resolveHomeOrigin(name), // app: name → <home> | apex
isAllowedIssuerOrigin: (o) => isAllowedHome(o), // app: issuer allowlist
});
// FedCM-first, then popup, then redirect (the seamless launcher):
try {
const r = await connectViaFedcm(await resolveHomeOrigin(''), 'demo-web', onProgress);
// r.idToken + r.delegation — done, no /token round-trip
} catch {
const p = await connectViaPopup(connect, name, 'demo-web-connect-relay', onProgress, signal);
if (p.status === 'blocked') {
const { url, stash } = await connectViaRedirect(connect, name);
sessionStorage.setItem('connect', JSON.stringify(stash));
window.location.href = url; // returns ?code&state
} else if (p.status === 'success') {
const tok = await connect.exchangeCode(p.authOrigin, p.code, p.codeVerifier);
await connect.verifyIdToken(p.authOrigin, tok.idToken, p.stash.nonce);
}
}
打开 ?code&state 返回(方向路径),读取隐藏, exchangeCode,则 verifyIdToken。 。 。 .
边界
唯倚侧相. 经纪人/家庭一方是 @agenticprimitives/connect;证书仪式在
Ưμ㼯Aconnect-auth) (中文(简体) ). 只导入此套件 @agenticprimitives/types + 键 @agenticprimitives/fedcm-rp, (中文(简体) ),
是 WebCrypto 的,没有主机名.