Php 传递给Lightning\Routing\Middleware\ThrottleRequests::addHeaders()的参数1必须是的实例
我创建了一个新的中间件来检查用户令牌,我创建了中间件,然后使用kernal.php,但是当我试图访问中间件中的$request时,我得到了错误 这是我的中间件代码 请帮忙Php 传递给Lightning\Routing\Middleware\ThrottleRequests::addHeaders()的参数1必须是的实例,php,laravel,jwt,Php,Laravel,Jwt,我创建了一个新的中间件来检查用户令牌,我创建了中间件,然后使用kernal.php,但是当我试图访问中间件中的$request时,我得到了错误 这是我的中间件代码 请帮忙 public function handle($request, Closure $next, $guard = null) { $token = $request->header('Authorization'); $verify = explode(" ", $token);
public function handle($request, Closure $next, $guard = null)
{
$token = $request->header('Authorization');
$verify = explode(" ", $token);
if ($verify[0] !== "petani") {
return [
'code' => 401,
'error' => 'Token not provided.'
];
}
if (!$token) {
return [
'code' => 400,
'error' => 'Provided token is expired.'
];
}
try {
$credentials = JWT::decode($verify[1], env('JWT_SECRET'), ['HS256']);
} catch(ExpiredException $e) {
return [
'code' => 400,
'error' => 'Token is expired. '
];
} catch(Exception $e) {
return [
'code' => 400,
'error' => 'An error while decoding token.'
];
}
return $next($request);
}
多亏了这一点:
您应该以以下方式返回响应:
public function handle($request, Closure $next, $guard = null)
{
$token = $request->header('Authorization');
$verify = explode(" ", $token);
if ($verify[0] !== "petani") {
$response= [
'code' => 401,
'error' => 'Token not provided.'
];
return response()->json($response, 401);
}
if (!$token) {
$response= [
'code' => 400,
'error' => 'Provided token is expired.'
];
return response()->json($response, 400);
}
try {
$credentials = JWT::decode($verify[1], env('JWT_SECRET'), ['HS256']);
} catch(ExpiredException $e) {
$response= [
'code' => 400,
'error' => 'Token is expired. '
];
return response()->json($response, 400);
} catch(Exception $e) {
$response= [
'code' => 400,
'error' => 'An error while decoding token.'
];
return response()->json($response, 400);
}
return $next($request);
}
一定是一个例子,先生?这就是您遇到的错误吗?猜猜是什么原因导致出现此错误。传递给Illumb\Routing\Middleware\ThrottleRequests::addHeaders()的参数1必须是的实例