Pular para o conteúdo principal

Limitação de taxa de envio

O Logto aplica um limite de taxa interno, por destinatário, para códigos de verificação enviados e outras mensagens enviadas por e-mail e SMS. Isso protege seus usuários e seus provedores de mensagens contra abuso de envio — como um invasor enviando spam para a caixa de entrada ou telefone de uma vítima com códigos, ou aumentando o tráfego de SMS para inflar seus custos.

Esse limite é obrigatório e em nível de sistema: ele se aplica a todo locatário independentemente do plano e não é configurável pelo locatário. Ele é independente de:

  • As políticas de bloqueio de identificador e CAPTCHA, que limitam tentativas de verificação falhas no momento da verificação, e não o ato de enviar.
  • O limite global de taxa de API por locatário (código de erro request.rate_limited), que limita o volume geral de solicitações em um locatário.

Como funciona

  • Limite por destinatário: O Logto limita quantas mensagens podem ser enviadas para o mesmo destinatário (endereço de e-mail ou número de telefone) dentro de uma janela de tempo curta e deslizante. Por padrão, isso permite até 10 envios por destinatário a cada 10 minutos.
  • Onde se aplica: todos os caminhos de envio do lado do servidor, incluindo envios de código de verificação da Experience API e Account API (login, registro, redefinição de senha, MFA e vinculação de identificador), envios de código de verificação da Management API, envio e reenvio de convite de organização, e envios de código de verificação da Account (/me).
  • Quando o limite é excedido: a solicitação é rejeitada com HTTP 429 e o código de erro request.message_rate_limited — distinto do limitador global do locatário (request.rate_limited) e do bloqueio no momento da verificação (session.verification_blocked_too_many_attempts), para que você possa tratá-lo especificamente em sua integração.

Monitore envios limitados por taxa com um webhook

Quando um usuário final atinge o limite por destinatário, o Logto aciona o evento de webhook Message.RateLimited (eventos de webhook), para que você possa alertar ou responder a abusos de envio.

  • Disparado para: apenas caminhos de envio de código de verificação do usuário final — Experience API e Account API. Ele não é disparado para envios de primeira parte ou iniciados por administrador (códigos de verificação da Management API, convites de organização ou /me).
  • Payload: o contexto do hook inclui a action (por exemplo, VerificationCodeSend) e o recipient (o endereço de e-mail ou número de telefone).

Casos de uso comuns:

  • Enviar alertas de segurança para sua equipe revisar.
  • Acionar automações antiabuso downstream para o destinatário afetado.

Navegue até Console > Webhooks para se inscrever, ou crie o hook via Management API. Para a estrutura detalhada do evento e configuração, veja Webhooks.

Entrega suprimida para destinatários desconhecidos

Para evitar enumeração de contas, quando o cadastro via identificador está desabilitado, um código de verificação de login solicitado para um endereço de e-mail ou número de telefone que nenhuma conta possui não é entregue silenciosamente, e a API responde da mesma forma que faria para um envio real. Assim, um invasor não pode usar essas respostas para descobrir quais endereços estão registrados. A entrega para usuários existentes não é afetada. Veja também Ocultar existência de conta.