通过 URL 制定 DID Connect 的行为
zhanghan
2024-07-02 01:11
· edited
在某些情况下,需要在任意链接中能够使用户能够快速切换指定账号,此时可以通过 URL 参数来定制 DID Connect 部分行为
目前包含的功能有:
- 要求用户切换至指定账户
type DIDConnectUrlOptions = {
forceConnected: string;
// sourceAppPid?: string; // 不再需要该字段,会通过 forceConnected 去查询获得
// auto 代表引导切换(进行弹窗提示,用户可选择不切换);
// disabled 代表不提示(适用于支付页面,允许用户不以当前登录账户来进行支付);
// required 代表强制要求切换(进行页面跳转强制切换账号)
// switchAccount?: boolean || 'auto'; // 默认 'auto'
switchBehavior?: 'auto'|'disabled'|'required';
// 是否展示关闭按钮(通常用于 switchBehavior 为 auto 时,但又不想展示关闭按钮的情况使用)
showClose?: boolean; // 默认:undefined(但实际在 Confirm 组件中,默认为 true)
}
整体参数以 Buffer.from(JSON.stringify(data), 'utf8').toString('base64')
处理后,通过 __did-connect__
参数携带
参考示例:
bbqa2ma5eznki36ug2xtb2u2qy4fnysu5dnehnoft4a.did.abtnet.io/?__did-connect__=eyJzd2l0Y2hCZWhhdmlvciI6ImF1dG8iLCJmb3JjZUNvbm5lY3RlZCI6InoxZlV3VWdLanRQRUpzNkFCTGVQRWR6amRERXZadndXcDRoIiwic291cmNlQXBwUGlkIjoiek5LWWN5QmdOb0hRM0dIalVRSlVrSkg4b3A0Q0xYeVFINGVlIn0%3D
最终解码的数据为
{
"switchBehavior": "auto",
"forceConnected": "z1fUwUgKjtPEJs6ABLePEdzjdDEvZvwWp4h",
"sourceAppPid": "zNKYcyBgNoHQ3GHjUQJUkJH8op4CLXyQH4ee"
}
Sticker