如何限制每个用户帐户的 Twilio SMS?

问题描述 投票:0回答:1

在 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 的通话间隔?

node.js express twilio
1个回答
0
投票

刚刚发现

uniqueName
应该是创建速率限制器时赋予
uniqueName
属性的值(在我的例子中是
uniqueName: 'endUserId'
)。 所以解决方法是像这样发送
rateLimits

rateLimits: {
   endUserId: userId,
}

将为每个单独的用户 ID 检查此限制。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.