freedomsex / time-token-service
A simple `time-token` service based on creation time.
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
Простой сервис для сохранения и получения времени готовности токена к проверке. В качестве токена может использоваться любой идентификатор(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 секунды. Время хранения токена ожидания 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)
Возвращает NULL если $id
не существует или истекло время хранения. TRUE - если токен готов, FALSE - время не пришло.
left($id)
Сколько осталось времени. Отрицательное значение - токен готов, прошло времени от наступления готовности. Нулевое - токен готов только что.
restore($id, $delay = null)
Получить ожидаемое время готовности токена $delay
по $id
установленное на старте. Если не существует - вернет дефолтное значение или $delay
.
Другие функции
expect($id)
Вернет ожидаемое время готовности токена $delay
по $id
или NULL
delay($time = null)
Вернет время ожидания $time
или дефолтное значение
expires($expect, $expire = null)
Время хранения токена после которого он станен недоступен.