问题描述
我目前正在构建一个通过 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 来提醒您,这样您就无需等待交互用户输入以刷新数据。