Fiskil Link SDK (英语:@fiskil/link(中文(简体) )
Fiskil 链接 SDK (@ fiskil/link) 使得它容易嵌入 Fiskil Auth 会话 在您的网络应用程序中。 一个 Auth 会话 最终用户如何通过Fiskil平台连接其银行或金融机构,以分享消费者数据权利(CDR)数据.
SDK 处理完全同意过程并返回数据共享过程的结果 - 您只需要提供一个 Fiskil auth_session_id 启动和处理您的应用程序中的结果。 一旦用户批准CDR共享,您的后端就可以监听 Fiskil 网络游戏 然后开始通过 Fiskil 获取CDR 数据 银行业务 或者说 能源 APIs (英语).
安装
用您首选的软件包管理器安装软件包 :
npm i @fiskil/link
# or
pnpm add @fiskil/link
快速启动( ESM/ TypeScript)
要使用这个SDK, 您需要一个 Fiskil 团队账户 。 如果你没有账户,你可以 联系 为快速演示。 如果你是新到菲斯基尔平台 快速启动指南。 。 。 .
在启动同意前, 您的后端必须 创建 Auth 会话 通过费斯基尔API。 传出结果 auth_session_id 进入 SDK 开始您的应用程序中的流程 .
import { link, type LinkError } from '@fiskil/link';
// Start the consent flow
const flow = link('auth_session_id');
try {
const result = await flow;
console.log(result.consents);
} catch (err) {
const linkError = err as LinkError;
console.log('Link Error code:', linkError.code);
}
// to cancel the consent flow programmatically
// flow.close();
API 参考
link(sessionId, options?)
创建和挂载同意的 UI 元素 。 回返a LinkFlow 对象,两者均为:
- (单位:千美元)
Promise解决流动结果 - 控制器为
.close()在程序上取消流量.
| 选项 | 类型 | 说明 |
|---|---|---|
timeoutMs | 编号 | 同意流的最大时间,以毫秒计。 默认为 600000 (10分钟). |
结果
这个 LinkFlow 1. 决定成功有效载荷:
type LinkResult = {
redirectURL?: string;
consents: string[];
};
- 确定的结果包括:
redirectURL(如果配置)和consents,可以用来从 Fiskil 平台获取用户数据的一系列同意ID. - 如果失败,承诺以
LinkError(见错误处理).
补全信息必须包含一个或多个非空白字符串ID. 无效 consents 不被忽略,而不回到 consentID; SDK 等待一个有效的结果或超时.
移动到 1.0.0
中断更改 : 替换 result.consentID 与 result.consents,一系列同意的ID, 并处理每个ID. redirectURL 仍然是可选的.
遗产补全消息仍然支持: SDK 转换 consentID 改为 consents: [consentID]。 。 。 .
SDK将其软件包版本添加到 Iframe URL 作为 sdkVersion。不需要配置.
处理错误
承诺拒绝 LinkError 如果在同意流过程中遇到任何错误.
interface LinkError extends Error {
name: 'LinkError';
code: LinkErrorCode;
details?: unknown;
}
| 错误代码 | 说明 |
|---|---|
LINK_NOT_FOUND | DOM 中没有容器元素 |
LINK_TIMEOUT | 流量超过选项中指定的超时时间 |
LINK_USER_CANCELLED | 用户取消或程序流程关闭 |
LINK_ORIGIN_MISMATCH | 从出乎意料的来源收到信件 |
LINK_INTERNAL_ERROR | 在同意流中遇到的未识别错误 。 未知错误类型保存于 details.error_type |
LINK_INVALID_SESSION | 指定的认证会话无效 |
AUTH_SESSION_INVALID | 自动会话无效 |
AUTH_SESSION_CANCELLED | Auth 会话被取消 |
CONSENT_UPSTREAM_PROCESSING_ERROR | 同意流期间的上游处理出错 |
CONSENT_ENDUSER_DENIED | 用户在同意流动期间拒绝同意 |
CONSENT_OTP_FAILURE | 在同意期间检察官办公室的核查失败 |
CONSENT_ENDUSER_INELIGIBLE | 用户没有资格共享数据 |
CONSENT_TIMEOUT | 同意程序超时 |
注:用于 LINK_INVALID_SESSIONiframe仍然挂着。 你可以按程序关闭它 .close()。 。 。 .
对于 AUTH_SESSION_INVALID,当承诺拒绝时,iframe被删除.
UMD / CDN 用户
<script src="https://cdn.jsdelivr.net/npm/@fiskil/[email protected]/dist/fiskil-link.umd.js"></script>
<script>
const flow = FiskilLink.link('session_123');
flow.then((res) => console.log('done', res)).catch(console.error);
// flow.close();
</script>