multi-store/app/common/cache/AdminAccountSafeCache.php

63 lines
1.5 KiB
PHP
Raw Permalink Normal View History

2024-05-30 21:37:55 +08:00
<?php
namespace app\common\cache;
use support\Cache;
class AdminAccountSafeCache extends BaseCache
{
private $key;//缓存次数名称
public $minute = 15;//缓存设置为15分钟即密码错误次数达到锁定15分钟
public $count = 15; //设置连续输错次数即15分钟内连续输错误15次后锁定
2024-06-03 15:48:47 +08:00
public function __construct($prefix = 'admin_')
2024-05-30 21:37:55 +08:00
{
parent::__construct();
$ip = \request()->getRealIp();
// $this->key = $this->tagName . $ip;
2024-06-03 15:48:47 +08:00
$this->key = $prefix . $ip;
2024-05-30 21:37:55 +08:00
}
/**
* @notes 记录登录错误次数
* @author 令狐冲
* @date 2021/6/30 01:51
*/
public function record()
{
if (Cache::get($this->key)) {
//缓存存在,记录错误次数
Cache::set($this->key, Cache::get($this->key) + 1);
} else {
//缓存不存在,第一次设置缓存
Cache::set($this->key, 1, $this->minute * 60);
}
}
/**
* @notes 判断是否安全
* @return bool
* @author 令狐冲
* @date 2021/6/30 01:53
*/
public function isSafe()
{
$count = Cache::get($this->key);
if ($count >= $this->count) {
return false;
}
return true;
}
/**
* @notes 删除该ip记录错误次数
* @author 令狐冲
* @date 2021/6/30 01:55
*/
public function relieve()
{
Cache::delete($this->key);
}
2024-06-03 15:48:47 +08:00
}