NodeJS 如何限制每个用户帐户的Twilio短信?

bksxznpy  于 9个月前  发布在  Node.js
关注(0)|答案(1)|浏览(110)

在一个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的呼叫间隔?

qcuzuvrc

qcuzuvrc1#

刚刚发现uniqueName应该是在创建速率限制器时给uniqueName prop 的值(在我的情况下是uniqueName: 'endUserId')。所以修复方法是像这样发送rateLimits

rateLimits: {
   endUserId: userId,
}

字符串
将针对每个单独的用户ID检查此限制。

相关问题