【发布时间】:2015-01-02 09:50:11
【问题描述】:
我正在对 Yodlee 后端进行 MFA 身份验证流程,并且我知道知道 MFA 流程已完成的唯一方法是进行 getMFAResponse 调用并获得以下响应。
{
"isMessageAvailable":true,
"fieldInfo":{
"questionAndAnswerValues":[],
"numOfMandatoryQuestions":-1
},
"timeOutTime":99300,
"itemId":12689201,
"errorCode":0,
"retry":false
}
错误代码才是最重要的。空的 fieldInfo 值只是不必要的噪音。
但问题是,在我们的测试环境中使用 DAG 帐户获取实际需要的 MFA 字段的第一次调用持续 0.4 秒。但是额外的 getMFAResponse 需要知道 MFA 流程完成需要 43 秒。
是的 43 秒!!!那时我可以步行到银行排队以获得一些个人服务。这种响应时间在生产环境中是正常的,还是测试环境有问题?在这种响应时间下,很难做出可以接受的 UI。
当然,如果事先知道 MFA 流只有 1 级深度,则可以跳过额外的刷新。可能有这种响应时间必须做一些肮脏的技巧和假设......
似乎 DAG config xml 有以下内容
<flowControlInfo>
<delayBeforeChallenge>-1</delayBeforeChallenge>
<delayBeforeLoginComplete>20</delayBeforeLoginComplete>
<delayAfterLoginComplete></delayAfterLoginComplete>
<expireToken>false</expireToken>
</flowControlInfo>
因此,看起来预计会延迟 20 秒 (delayBeforeLoginComplete),但这仍然比发生的情况少 23 秒,并且预计 getMFAResponse 会在更短的时间内返回 isMessageAvailable = false。
【问题讨论】:
标签: yodlee