freedomsex/time-token-service

此包已被弃用且不再维护。作者建议使用a4sex/time-token-service包。

基于创建时间的简单`time-token`服务。

0.0.2 2019-08-07 17:25 UTC

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在不可用后的存储时间。