问题描述
我有一个使用 Twilio 验证进行电子邮件验证的具有以下 3 步流程的网络应用:
- 使用验证创建验证码
- 使用验证检查验证码
- 在我的 web api 中创建用户帐户
在成功进行 Twilio Verify 验证码检查(第 2 步)之后,我需要能够再次调用 Twilio Verfy 以确保电子邮件在用户帐户实际上是在我的 web api 中创建的(第 3 步)。但是由于在成功的电子邮件验证后删除了 SID,我收到了 GET
请求的以下答复:
https://verify.twilio.com/v2/Services/{ServiceSid}/Verifications/{Sid}
{
"code": 20404,"message": "The requested resource /Services/VAxxx/Verifications/VExxx was not found","more_info": "https://www.twilio.com/docs/errors/20404","status": 404
}
现在,对于前端来说,这很简单:只有在电子邮件被成功验证后,我才会进入最终的帐户创建步骤。 但是,对于真正的无状态后端,在接受前端请求后,我首先需要与 Twilio 仔细检查电子邮件是否确实已经过验证。
真正的无状态,因为如果电子邮件已经过验证,我不想将其存储在数据库中。 (这已经由 Twilio 完成了)
我该怎么做?我在 Twilio 文档中没有找到正确的 API。
解决方法
这里是 Twilio 开发者布道者。
我了解您希望获取出现在日志中的可用信息,但无法通过 API 获取。一旦验证成功(或 10 分钟后超时,或达到最大错误尝试次数)it is deleted,您将无法再通过 API 访问它。我认为这是为了防止重播攻击,但我不在那个团队中,所以不知道背后的所有原因。
这样做的结果是,您不能从代码中多次调用验证检查。
您必须将状态存储在您自己的系统中,因为 API 不会为您存储该状态。就像在使用 2FA 登录时一样,您需要存储密码已成功输入的状态。