首页 > 解决方案 > Laravel 错误 429(请求过多):如何检查和记录请求计数?

问题描述

我的控制台中有以下错误消息:

加载资源失败:服务器响应状态为 429 (Too Many Requests)

所以,我的问题是,当我接近限制时,我从哪里可以获得检查和记录的请求数量?

标签: laravel

解决方案


在客户端,您可以检查响应标头

x-ratelimit-limit: 60
x-ratelimit-remaining: 59

在此处输入图像描述

如果您发送请求axios

axios.get(`/api/users`)
    .then(({ data, headers }) => {
        console.log(headers['x-ratelimit-limit']);
    });

在服务器端,您可以添加这样的中间件

php artisan make:middleware LogRequestLimit

app\Http\Kernel.php中注册

    protected $middleware = [
        ...
        \App\Http\Middleware\LogRequestLimit::class,
    ];

app\Http\Middleware\LogRequestLimit.php

<?php
namespace App\Http\Middleware;
use Closure;

class LogRequestLimit
{
    public function handle($request, Closure $next)
    {
        $response = $next($request);

        \Log::debug($response->headers->get('x-ratelimit-limit'));

        return $response;
    }
}

在此处输入图像描述


推荐阅读