首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >非登录用户如何限速?

非登录用户如何限速?
EN

Stack Overflow用户
提问于 2017-12-01 22:39:57
回答 1查看 273关注 0票数 0
代码语言:javascript
复制
public function behaviors()
    {
        return [
            'rateLimiter' => [
            'class' => \yii\filters\RateLimiter::className(),
            'enableRateLimitHeaders' =>false
        ],
    ];
    }

public function getRateLimit($request, $action)
    {
        // 6 - кол-во
        // 10 - это секунды
        return [6, 10];
    }

    public function loadAllowance($request, $action)
    {
        return [$this->allowance, $this->allowance_updated_at];
    }

    /**
     * Метод сохранит в кеш
     * @param \yii\web\Request $request
     * @param \yii\base\Action $action
     * @param int $allowance
     * @param int $timestamp
     */
    public function saveAllowance($request, $action, $allowance, $timestamp)
    {
        $this->allowance = $allowance;
        $this->allowance_updated_at = $timestamp;
        $this->save();
    }

重点是,在没有使用会话的情况下,日志记录发生在android应用程序上。刚刚发送了响应令牌,这是登录用户的id。

EN

回答 1

Stack Overflow用户

发布于 2017-12-01 22:46:44

  1. 你可以借助cookie,我不确定cookie在安卓应用程序中是如何工作的。您可以选择临时文件。
  2. 您可以记录未登录用户的IP并保留在数据库中,只要您想保留该限制即可。

但是,如果您通过上述任何一种方式实现此限制,用户可以通过删除cookie/临时文件或IP绕过此限制。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47595742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档