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。
答案 0 :(得分:0)
您可以获取Cookie的帮助,我不确定Cookie在Android应用中的工作原理。您可以选择临时文件。
您可以记录未登录用户的IP,只要您想保留限制,就可以保留在数据库中。
但是,如果您通过上述任一方式实施此限制,用户可以通过删除Cookie /临时文件或IP来绕过限制。