跳转至

速率限制

Authany 会保护项目免受服务和资源的异常大量请求影响。如果项目在很短时间内收到过多请求,就可能触发限制。此功能旨在防止滥用并保持您的应用程序稳定运行。

在本页面中,您可以找到所有 Authany 服务和资源的限制详情。

默认限制

以下是本文档中 未特别说明 限制时,任何 Authany 资源适用的默认速率限制:

  • 每个 IP 地址每分钟最多 60 次请求(60/min)。
  • 每个用户在同一 IP 地址下每分钟最多 10 次请求(10/min)。

继续阅读以了解各具体资源的速率限制详情。

身份验证

以下部分包含与身份验证相关操作的速率限制表格。

每 IP 地址限制: 此列指定在特定时间间隔内,单个 IP 地址对某项资源或功能的最大使用次数。

每用户每 IP 限制: 这是在特定时间间隔内,单个用户在单个 IP 地址上使用某项资源或功能的最大次数。例如,用户 John.doe@example.com 在同一 IP 地址 下 1 分钟 内只能 使用 TOTP 10 次。

项目每 IP 地址限制每用户每 IP 限制
注册7/168hrs (7 days)N/A
匿名注册60/minN/A
账号枚举10/minN/A
密码60/min10/min
TOTP60/min10/min
通行密钥60/min10/min
SIWE60/min10/min
设备令牌(生物识别)60/min10/min

验证

下表展示了与用户验证相关请求的速率限制。

每 IP 触发次数: 此列的数值指定了在特定时间(1 分钟)内,从同一 IP 地址可发起的用户账号验证请求的最大次数。

每 IP 验证次数: 这是在特定时间(1 分钟)内,从同一 IP 地址可完成的用户账号验证的最大次数。

冷却时间: 用户在发送下一次请求(重试)或使用某项功能之前必须等待的最短时间。短信 OTP 和邮件 OTP 的默认冷却时间为 60 秒。

项目每 IP 触发次数每 IP 验证次数冷却时间
短信 OTP(无密码)60/min60/min可自定义
邮件 OTP(无密码)60/min60/min可自定义

如何自定义验证冷却时间和限制

用户验证的冷却时间可以在 Authany 管理台中设置为自定义值。要执行此操作,请进入身份验证 > 登录方式,然后点击验证标签页。您可以在验证标签页窗口中使用重新发送冷却时长输入字段设置冷却时间(以秒为单位)。

您还可以在验证标签页中设置以下其他限制:

  • 每位用户每日 6 位数 OTP 限制:设置用户在 24 小时内可请求的 OTP 最大次数。
  • 6 位数 OTP 有效时长(秒): 发送给用户的 OTP 验证码的有效期。自用户请求 OTP 起,经过此处指定的秒数后,Authany 将不再接受该验证码。
  • 6 位数 OTP 允许尝试的次数: 此功能默认关闭。开启后,如果用户输入错误验证码达到指定次数,有效的 OTP 将失效。

账号锁定

账号锁定是指用户因输入错误密码、OTP 或恢复代码的次数超过允许的最大尝试次数,而被临时锁定。

有关启用和自定义账号锁定的详情,请参阅账号锁定文档页面。

账号恢复

下表展示了向用户发送账号恢复消息的速率限制,其中还包含一个 Validate per IP 列,用于指定某个 IP 地址上的用户在给定时间内可以尝试账号恢复的次数。

每 IP 触发次数: 此列的数值指定了在特定时间(1 分钟)内,从同一 IP 地址可发起的账号恢复请求的最大次数。

每 IP 验证次数: 这是在特定时间(1 分钟)内,从同一 IP 地址可尝试或完成的账号恢复的最大次数。

每目标冷却时间: 用户在向同一目标(邮箱地址或手机号)发送下一次请求之前必须等待的最短时间。

项目每 IP 触发次数每 IP 验证次数每目标冷却时间
邮件已禁用60/min1 分钟
短信已禁用60/min1 分钟

消息

本节的速率限制适用于您的 Authany 项目发送的所有消息(邮件和短信)。

每 IP 限制: 此列定义了在特定时间内,从同一 IP 地址可发起的消息最大数量。例如,用户在不更换 IP 地址的情况下,1 分钟内最多可发送 200 条消息。

每目标限制: 这是在特定时间(24 小时)内可发送给某个目标(邮箱地址或手机号)的消息最大数量。例如,某个 Authany 项目的每目标限制为 50/24hrs,则该项目在 24 小时内最多可向同一邮箱地址发送 50 条消息。

项目 每 IP 限制 每目标限制
邮件 200/min 50/24hrs
短信 60/min 10/hr

默认 OTP 有效时长

  • 6 位数一次性密码(OTP)的默认有效时长为 5 分钟。
  • 一次性验证链接的默认有效时长为 20 分钟。

自定义默认限制

如果默认速率限制不适合您的具体使用场景,可以联系我们,进一步讨论如何为您的项目自定义默认限制。