我们正在尝试从Authy迁移TOTP因子来验证Twilio中的API。我们引用了下面这篇文章
从上面的URL中,我们能够精确地指出如何提取在Authy中创建的秘密。但是,我们不确定如何使用从Authy中提取的秘密来创建验证API中的一个因素。你能详细告诉我们如何做到这一点吗?
发布于 2022-11-04 17:20:28
由于我不知道您使用的是哪种编程语言,所以我将使用cURL命令,您可以将这些HTTP请求转换成您选择的语言。
首先,您需要请Twilio支持为您的Authy应用程序启用迁移工具。当您导航到Authy应用程序时,他们会要求您提供Authy应用程序ID,您可以在Twilio控制台的URL中找到它。
然后可以使用前面链接的导出TOTP秘密API:
curl -i "https://api.authy.com/protected/json/users/$AUTHY_USER_ID/secret/export" \
-H "X-Authy-API-Key: $AUTHY_API_KEY"$AUTHY_USER_ID是您试图将其TOTP因素移动到验证中的单个Authy用户ID,service.$AUTHY_API_KEY是Authy App.的API键。
输出将如下所示:
{"secret":"[REDACTED]","otp":"[REDACTED]","success":true}Authenticator/etc).
secret是在验证服务otp是唯一的密码,与用户在其TOTP用户应用程序(Authy/Google secret)中看到的相同现在,您可以使用验证API创建一个新的因素:
curl -X POST "https://verify.twilio.com/v2/Services/$VERIFY_SERVICE_SID/Entities/$IDENTITY/Factors" \
--data-urlencode "Binding.Secret=$EXPORTED_AUTHY_SECRET" \
--data-urlencode "Config.Alg=sha1" \
--data-urlencode "Config.TimeStep=30" \
--data-urlencode "Config.CodeLength=6" \
--data-urlencode "Config.Skew=1" \
--data-urlencode "FriendlyName=John's Phone" \
--data-urlencode "FactorType=totp" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN$VERIFY_SERVICE_SID是您验证的SID,Service.$IDENTITY是您的用户的唯一ID,长度在8到64个字符之间,由外部系统(如用户的UUID、GUID或SID )生成。如果标识还不存在,它将被自动创建,因为这个API call.$EXPORTED_AUTHY_SECRET是由Authy Export返回的secret,earlier.$TWILIO_ACCOUNT_SID是您的Twilio帐户,SID.$TWILIO_AUTH_TOKEN是您的Twilio Auth令牌。这个API调用记录在这里:https://www.twilio.com/docs/verify/quickstarts/totp#create-a-new-totp-factor
您可以使用Authy Export返回的otp来验证您创建的新因素:
curl -X POST "https://verify.twilio.com/v2/Services/$VERIFY_SERVICE_SID/Entities/$IDENTITY/Factors/$FACTOR_SID" \
--data-urlencode "AuthPayload=$OTP_CODE" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN$FACTOR_SID是新创建的Factor.$OTP_CODE的SID,是Authy Export .返回的otp代码。
这个API调用记录在这里:https://www.twilio.com/docs/verify/quickstarts/totp#verify-that-the-user-has-successfully-registered
就这样!如果要验证用户的OTP代码,可以创建如下所示的挑战:
curl -X POST "https://verify.twilio.com/v2/Services/$VERIFY_SERVICE_SID/Entities/$IDENTITY/Challenges" \
--data-urlencode "AuthPayload=$OTP_CODE" \
--data-urlencode "FactorSid=$FACTOR_SID" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN$OTP_CODE是用户提供给应用程序的otp代码.这个API调用记录在这里:https://www.twilio.com/docs/verify/quickstarts/totp#validate-a-token
https://stackoverflow.com/questions/74302235
复制相似问题