从开放银行提取时保留用户银行数据

问题描述

我目前正在构建一个通过 Plaid 使用 Open Banking 的应用。这是一个 React 前端应用,具有支持“后端”的无服务器功能

目前,在每次加载页面时,用户的访问令牌都会通过 Plaid API 传输并拉取银行数据。用户数据不会以任何方式持久化,当用户离开页面时就会丢失。

不幸的是,这是一个相当大的性能消耗 - 这意味着每次用户浏览网站时,必须在每次页面加载时调用 API,即使数据刚刚加载,因此它会导致 3/4 秒在每个页面上加载。很慢。

我注意到其他保存此类数据的“银行”应用程序似乎以某种方式持久保存。无论是通过 API 提取数据然后存储在加密数据库中,还是提取并存储在本地存储中,我都不确定..

所以我的问题是 - 广义上 - 我通过 API 保留用户银行数据的最佳方式是什么?

我可以将其存储在每次用户“刷新”连接时都会更新的数据库中吗?也许每隔几个小时,或者点击“刷新”?

或者有其他更合适的方式让我这样做吗?

希望这是有道理的,并在正确的地方被问到。

解决方法

因此,通常在调用开放银行 API 时,您不想从客户端调用它——出于性能原因(正如您已经遇到的那样)和出于安全原因,因为您有暴露 API 机密的风险.这篇关于该主题的文章提供了一些方便的指导:keeping credentials secure when making API calls with JavaScript

我们建议保护加密的数据并保存在数据库中,而不是本地存储中。 Plaid 文档也在 launch checklist 中稍微涉及到这一点。

刷新数据的确切机制取决于您使用的 API,但如果是 Transactions 之类的东西,Plaid 可以在有新数据可用时发送 webhooks 来提醒您,这样您就无需等待交互用户输入以刷新数据。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...