freedomsex / time-token-service
0.0.2
2019-08-07 17:25 UTC
Requires
- php: ^7.2
Requires (Dev)
- phpunit/phpunit: ^7.2
- symfony/cache: ^4.3
This package is auto-updated.
Last update: 2023-08-19 11:55:00 UTC
README
简单的用于保存和检索准备检查的token时间的服务。token可以使用任何标识符(ID)。用于设置访问服务的等待时间,作为预防DDoS攻击的保护措施。
工作原理
将标识符作为键
,将等待时间作为值
保存到设置的缓存实例中。使用PSR-6兼容的缓存实例。
如何使用
use FreedomSex\Services\TimeTokenService; use Symfony\Component\Cache\Adapter\FilesystemAdapter; // любой PSR-6 совместимый экземпляр кэша // для примера указан FilesystemAdapter Symfony // обычно используется MemcachedAdapter $memory = new FilesystemAdapter(); $timeTokenService = new TimeTokenService($memory); $id = '123456'; // любая строка $timeTokenService->start($id, 2); $timeTokenService->ready($id); // FALSE sleep(2); // Подождать $timeTokenService->ready($id); // TRUE
start($id, $delay = null, $expire = null)
默认等待时间为TimeTokenService::DEFAULT_DELAY
2秒。token等待存储时间为TimeTokenService::TOKEN_EXPIRE
10秒。
// Параметры $delay и $expire не обязательны $timeTokenService = new TimeTokenService($memory, $delay = null, $expire = null); // OR $timeTokenService->setDelay($time); $timeTokenService->setExpire($time); // OR $timeTokenService->start($id, $delay = null, $expire = null); // Параметры $delay и $expire не обязательны
ready($id)
如果$id不存在或已过期,则返回NULL。TRUE - 如果token已准备就绪,FALSE - 时间尚未到来。
left($id)
剩余时间。负值表示token已准备就绪,从准备就绪开始经过的时间。零值表示token刚刚准备就绪。
restore($id, $delay = null)
通过$id获取启动时设置的预期token等待时间$delay。如果不存在,则返回默认值或$delay。
其他功能
expect($id)
返回$id的预期token等待时间$delay或NULL
delay($time = null)
返回时间等待时间$time或默认值
expires($expect, $expire = null)
token在不可用后的存储时间。