This commit is contained in:
2026-08-14 11:48:53 +08:00
parent 831113e22f
commit 396556a30f
3 changed files with 18 additions and 6 deletions

View File

@@ -9,7 +9,7 @@ use think\facade\Session;
// 已完成
class Login extends BaseController
{
{
/*
处理登录请求(已完成)
*/
@@ -17,15 +17,24 @@ class Login extends BaseController
{
$params = $this->request->only(['username', 'password'], 'post');
// 验证数据
if (empty($params['username']) || empty($params['password'])) {
if (empty(trim($params['username'])) || empty(trim($params['password']))) { // 验证数据
return $this->error('用户名和密码不能为空');
}
$username = trim($params['username']);
$failKey = 'login_fail_' . md5($username);
$fails = (int) cache($failKey); // 读取失败次数,并强制转为整数
if ($fails >= 5) {
return $this->error('失败次数过多,请 15 分钟后再试', [], 429);
}
try {
$result = $authService->login($params['username'], $params['password']);
$result = $authService->login(trim($params['username']), trim($params['password']));
cache($failKey, null);
return $this->success('登录成功', $result);
} catch (\Exception $e) {
cache($failKey, $fails + 1, 900); // 失败次数存活时间15分钟之后自动清零
return $this->error($e->getMessage());
}
}