【问题标题】:How do I invoke Link Update Mode in the Plaid Sandbox Quickstart app (node.js)?如何在 Plaid Sandbox 快速入门应用 (node.js) 中调用链接更新模式?
【发布时间】:2021-05-16 19:01:15
【问题描述】:

我已经启动并运行了 Plaid Quickstart(节点)。

我使用沙盒凭据成功登录了其中一个沙盒机构(第一鸭嘴兽银行)并获得了它生成的 access_token。

根据链接更新模式文档 (https://plaid.com/docs/link/update-mode/),您应该能够“强制给定项目进入 ITEM_LOGIN_REQUIRED 状态”。

从我上面链接到的文档...

可以使用 /sandbox/item/reset_login 端点在沙盒中测试更新模式,这将强制给定项目进入 ITEM_LOGIN_REQUIRED 状态。

我使用 Postman(在 Sandbox Public 环境中)向此端点 https://sandbox.plaid.com/sandbox/item/reset_login 发送 API 调用,以强制进入 ITEM_LOGIN_REQUIRED 状态。

这是通过 API 调用发送的正文...

{
  "client_id": "{{client_id}}",
  "secret": "{{secret_key}}",
  "client_name": "Insert Client name here",
  "country_codes": ["US"],
  "language": "en",
  "user": {
  "client_user_id": "unique_user_id"
},
  "access_token": "{{access_token}}"
}

这是我收到的回复...

{
  "expiration": "2021-02-13T04:13:12Z",
  "link_token": "link-sandbox-7d82e9b8-b8a7-4977-9c20-aadbc82ec050",
  "request_id": "eE56J8f5XJKpS6L"
}

...这是我的预期。

然后我返回快速入门应用程序并再次登录“第一鸭嘴兽银行”,希望收到 MFA 挑战的提示,但它只是创建了一个新的 access_token。

那么,如何让 Plaid Quickstart 应用进入链接更新模式?

更新:

根据 Alex 的问题,这是一张显示我拨打 Postman 电话的图片。他是对的,这是一个 /link/token/create 调用。它被标记为 Create Link Token - Update Mode 有什么令人困惑的地方。

更新 2:

这是 /sandbox/item/reset_login 调用和响应。响应中没有包含 link_token。

更新 3:

在 Alex 的帮助和 Plaid 支持的一些帮助之间,我得到了这个工作。

我将链接令牌放在错误的位置。

对于将来看到此内容的任何人,您需要按照以下步骤将节点快速入门应用程序置于链接更新模式。

您也可以观看this video 观看该过程的演示;但是,请注意,在视频中,我将 link_token 放在了错误的位置。下面的说明显示了如何将其放置在正确的位置。

  • 获取要进入链接更新模式的机构的 access_token(假设您已安装、启动并运行快速入门应用程序。请参阅...https://plaid.com/docs/quickstart/
    • 启动快速启动后端 (/quickstart/node/start.sh)
    • 启动快速入门前端 (cd /quickstart/frontend; npm start;)
    • 在浏览器中的端口 3000 上启动前端后,单击“启动链接”按钮,然后单击“继续”。
    • 搜索机构(例如,First Platypus Bank、First Gingham Credit Union...如果处于沙盒模式。或您自己的机构,如果处于开发模式)
    • 输入您的凭据(user_good/pass_good ...如果处于沙盒模式)
    • 复制 access_token
    • 关闭格子浏览器标签
  • 在 Postman 中(要设置它,请参阅...https://github.com/plaid/plaid-postman),输入您刚刚复制到 access_token 变量中的访问令牌(请参阅上面的第一个屏幕截图。单击右上角附近的图标看起来像一只眼睛,然后向下滚动到 access_token 并输入它。)
    • 运行 /sandbox/item/reset_login 端点。它在 Postman 中被标记为“模拟 ITEM_LOGIN_REQUIRED [仅限沙盒]”。请求正文应类似于上面的第二个屏幕截图。发送请求后,响应正文应显示"reset_login": true。现在格子项目(即机构)处于 ITEM_LOGIN_REQUIRED 模式。
    • 运行 /link/token/create 端点。它在 Postman 中被标记为“创建链接令牌 - 更新模式”。请求正文应该类似于上面的第一个屏幕截图。发送请求后,响应正文应为您提供一个 link_token。复制它以供下一步使用。
  • 将 link_token 放入 Plaid 快速入门应用程序中。
    • 在 /quickstart/frontend/src/App.tsx 中的 line 23 上,将 data.link_token 替换为您的 link_token。所以这个dispatch({ type: "SET_STATE", state: { linkToken: data.link_token } });变成了这个dispatch({ type: "SET_STATE", state: { linkToken: "link-sandbox-704ef648-2acd-44a2-867b-ea1258e9205c" } });(当然,使用你自己的link_token,不要忘记你的link_token周围的引号。)
  • 重新启动后端和前端。当您启动 Link 时,它现在应该处于 Link Update Mode。

【问题讨论】:

    标签: node.js sandbox multi-factor-authentication plaid


    【解决方案1】:

    您描述的过程听起来不错,但您帖子中的 API 请求和响应正文是 /link/token/create 的请求和响应,而不是 /sandbox/item/reset_login。你能确认你没有不小心调用 /link/token/create 而不是调用 /sandbox/item/reset_login 吗?

    【讨论】:

    • 感谢您的回复。是的,你是对的。我做了一个 /link/token/create 调用。这很令人困惑,因为在 Postman 中,它被标记为创建链接令牌 - 更新模式(见上图)。我会尝试 reset_login 并报告。
    • 我调用了 /sandbox/item/reset_login(参见上面的更新 2)。响应中没有 link_token。我想,也许在沙盒中,它以某种方式在 /sandbox/item/reset_login 调用之后自动将其置于链接更新模式,所以我重新登录到第一鸭嘴兽银行(期望它进入链接更新模式),而不是,创建了一个新的 access_token。因此,我的困惑。我做错了什么?
    • 抱歉造成混淆,我将创建一个任务来阐明 Postman 集合中的流程。无论如何,在调用 /sandbox/item/reset_login 之后,您需要将它返回的 access_token 作为参数传递给 /link/token/create(您可以使用 Create Link Token - Update Mode Postman 请求,只需确保复制 + 粘贴access_token 放入请求的第 10 行)。当您使用该调用返回的 link_token 初始化 Link 时,Link 将以更新模式打开。
    • 仍然无法让它工作。我觉得我们可能会遇到麻烦,所以我制作了一个截屏视频,向您展示我在做什么link。需要注意的几件事:1)也许我没有将 link_token 放在快速启动应用程序link 中的正确位置,2)当我第二次返回终端时,您会注意到那里有一些警告(我想来自编译器)。他们有什么问题吗?
    • Alex,我一直在与 Plaid 支持人员讨论这个问题。我想我可能把 link_token 放在了错误的地方。直到今天晚些时候我才有时间测试它,但想让你知道,这样你就不会在这方面不必要地花费更多时间了。感谢您抽出宝贵的时间。一旦我有机会进行更多测试,我会回来报告。
    猜你喜欢
    • 2021-08-06
    • 1970-01-01
    • 2018-07-02
    • 2022-07-11
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多