jstewmc/calculate-timeout

计算超时时间

v1.0.0 2016-08-13 22:58 UTC

This package is auto-updated.

Last update: 2024-08-29 04:14:36 UTC


README

计算超时。

为了防御暴力破解攻击,一些操作应该被限流。

给定一个超时分段函数和一个值,这个库将计算客户端在再次尝试操作之前应等待的秒数。

例如,考虑一个登录操作,其超时取决于连续失败的登录尝试次数

use Jstewmc\Fx\Constant;
use Jstewmc\Interval\Interval;
use Jstewmc\PiecewiseFx\{PiecewiseFx, SubFx};

// define our timeout piecewise function...
// for values between 10 (exclusive) and positive infinity (INF), we want the user
//     to wait for 30 seconds
//
$fx = new PiecewiseFx([
    new SubFx(
        new Interval('(10, INF)'),
        new Constant(30)
    )   
]);

// create our calculate-timeout service
$service = new Calculate($fx);

// check the user's timeout...
// keep in mind, the actual return value is a DateInterval
//
$service(1);   // returns 0 seconds
$service(2);   // returns 0 seconds
$service(3);   // returns 0 seconds
$service(4);   // returns 0 seconds
$service(5);   // returns 0 seconds
$service(6);   // returns 0 seconds
$service(7);   // returns 0 seconds
$service(8);   // returns 0 seconds
$service(9);   // returns 0 seconds
$service(10);  // returns 0 seconds
$service(11);  // returns 30 seconds
$service(12);  // returns 30 seconds
$service(13);  // returns 30 seconds

超时将始终是一个包含零或正数秒数的DateInterval对象。

这就完了!

许可证

MIT

作者

Jack Clayton

版本

1.0.0, 2016年8月13日

  • 主要版本
  • 更新composer.json

0.1.0, 2016年8月13日

  • 首次发布