php - 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是

标签 php laravel

我创建了一个新的中间件来检查用户 token 我创建了中间件然后添加到 kernal.php,但是当我尝试访问中间件中的 $request 时出现错误

这是我的中间件代码

namespace App\Http\Middleware;
use Illuminate\Http\Request;
use Closure;
use App\User;

class CheckToken
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {

        if($request->header('Token') == '123')
        {
            return ['status' =>2, 'msg' => 'Unathorized'];
        }
        else
        {
            return $next($request);
         }

    }
}

这是我的内核文件
 protected $routeMiddleware = [
        'auth' => \App\Http\Middleware\Authenticate::class,
        'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
        'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
        'cache.headers' => \Illuminate\Http\Middleware\SetCacheHeaders::class,
        'can' => \Illuminate\Auth\Middleware\Authorize::class,
        'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
        'signed' => \Illuminate\Routing\Middleware\ValidateSignature::class,
        'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
        'verified' => \Illuminate\Auth\Middleware\EnsureEmailIsVerified::class,
        'verifyToken' => \App\Http\Middleware\CheckToken::class,
    ];

我收到此错误
Argument 1 passed to Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() must be an instance of Symfony\Component\HttpFoundation\Response, instance of Illuminate\Http\Request given, called in C:\xampp\htdocs\idoltime\vendor\laravel\framework\src\Illuminate\Routing\Middleware\ThrottleRequests.php on line 62

最佳答案

您可以使用

// return $request;
if($request->header('Token') == '123')
{
        $response = [
            'status' => 2,
            'message' => 'Unauthorized',
        ];

        return response()->json($response, 413);
}
else
{
        return $next($request);
}

关于php - 传递给 Illuminate\Routing\Middleware\ThrottleRequests::addHeaders() 的参数 1 必须是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59971698/

相关文章:

laravel - 在运行 Laravel 任务计划命令时调用未定义的方法 Illuminate\Database\Eloquent\Builder::save()

javascript - 使用javascript以间隔时间定期运行php脚本

php - 限制 IMagick (PHP) 中的线程数

php - 简单地尝试更新 mysql 数据库中的项目

javascript - vue 中的 EventBus 不工作

mysql - Laravel:在查询中使用 WHERE CONCAT

php - JMS序列化器读取xml :lang attribute

php - 如何在 pdf 文件中包含 s3 url

php - 拉维尔 5.1 : SQL query 'where LIKE %word%word%word%' not working

php - Eloquent:还需要从此查询返回 "distance"(坐标)