介绍
当使用像 Workiva 的 API 那样的、带有过期身份验证令牌的多次 API 调用链时,存在令牌可能在所有调用启动之前过期的风险。如果发生这种情况,所有剩余的 API 调用都将失败。每次 API 调用前重新进行身份验证可以避免这个问题,但这会给整个流程增加额外的开销。
本指南解释了如何实现“动态刷新 OAuth 令牌”模板。该模板适用于使用 HTTP 连接器进行 API 调用的链,其中 API 需要通过具有过期日期和时间的令牌进行身份验证。虽然它是为 Workiva API 构建的,但也可以适用于使用类似身份验证方法的其他 API。
该区块链包含一个机制,可以在代币即将过期时自动刷新代币。它会从现有令牌的过期时间中减去 2 分钟(此值可以调整)作为缓冲时间,并将其与当前时间进行比较。如果当前时间晚于调整后的过期时间,则区块链会触发重新认证过程以生成新令牌,然后由区块链输出该令牌。如果令牌仍然有效,则区块链会跳过重新认证,直接输出现有令牌。
注意: 如果没有令牌传递给此链,则会自动进行身份验证过程并生成一个令牌,这意味着此链也可以用于我们的初始(第一次)身份验证请求以及任何后续请求。
先决条件
链结
必须在工作区中启用并配置以下连接器:
该模板包含以下 工作区变量 ,旨在与 Workiva API 配合使用,请根据需要进行更改和配置:
- wsv_platform(您的工作区所在的应用位置,美国使用“app”,欧盟/欧洲、中东和非洲地区使用“eu”,亚太地区使用“apac”)
- wsv_Client ID(您的 API 授权的客户端 ID)
- wsv_Client Secret(您的 API 授权密钥)
部署链
“动态刷新 OAuth 令牌”链模板位于模板屏幕的 Workiva 链部分。
以下是查找方法:
- 在 Chain Builder 中,转到“模板”选项卡
- 从顶部菜单中选择 Workiva Chains。
- 在右上角搜索“动态链接刷新 OAuth 令牌模板”,然后打开该模板。
- 找到模板后,单击“新建链”将其部署到您的工作区。
- 配置工作区和 API 的模板。
- 配置完成后,如果您希望直接使用该链而无需任何修改,请记得发布该链。
注: 有关如何从模板创建链的详细说明,请参阅 创建和管理链 文章。
配置模板
可以使用“运行链”命令将此模板添加到现有链中,并且无需对 Workiva API 进行任何额外修改即可正常工作。有关如何使用“运行链”事件命令的说明,请参阅此处。
这条链的一个典型应用场景是在使用迭代的现有命令组中。可以通过“运行链”事件命令运行此链,该命令在组中具有自己的分支, 设置动态链变量 并使用此链的输出。
在“运行链”命令中,您可以使用动态链变量来确保始终检查最新的令牌。
然后,您需要使用“运行链”命令的输出更新同一个动态链变量。
然后,您可以在发出的任何 HTTP 请求命令中使用相同的动态链变量。
更新缓冲时间
默认情况下,此模板会在现有令牌的过期时间基础上增加 2 分钟的缓冲时间,以避免任何时间问题。您可以在“检查到期日期时间是否临近”条件命令中更改此设置。
编辑此命令后,双击条件中的第一个“高级查询 - 转换 epoch 时间戳 - 时间戳”变量。
然后您可以根据自己的喜好调整金额。