在一个NodeJS Express应用程序中,我尝试使用Twilio的API为每个用户帐户应用费率限制器。
Bucket = {
sid: 'BLSID',
rateLimitSid: 'RKSID',
serviceSid: 'VASID',
accountSid: 'ACSID',
max: 1,
interval: 30,
dateCreated: 2024-01-04T08:01:59.000Z,
dateUpdated: 2024-01-04T08:01:59.000Z,
url: 'https://verify.twilio.com/v2/Services/...'
}
字符串
我已经为它创建了一个速率限制和一个桶,但当我尝试发送验证时,
export const sendPhoneVerificationCode = async (phone, dialCode, userId) => {
const CZECH_DIAL_CODE = '+420';
const sendVerificationCode = await client.verify.v2
.services(constants.VERIFY_SERVICE_SID)
.verifications.create({
to: `${dialCode}${phone}`,
channel: 'sms',
locale: dialCode === CZECH_DIAL_CODE ? 'cs' : 'en',
rateLimits: {
uniqueName: userId,
},
});
return sendVerificationCode;
};
型
它返回一个e:Invalid 'RateLimits' param. There is not RateLimit with UniqueName: uniqueName
错误。很明显rateLimits
参数值有问题,但我不知道是什么。
是否有可能限制每个用户ID的呼叫间隔?
1条答案
按热度按时间qcuzuvrc1#
刚刚发现
uniqueName
应该是在创建速率限制器时给uniqueName
prop 的值(在我的情况下是uniqueName: 'endUserId'
)。所以修复方法是像这样发送rateLimits
:字符串
将针对每个单独的用户ID检查此限制。