我无法在JWT中间件设置中添加错误输出。
我收到此错误:Cannot use object of type Slim\Http\Response as array
我正在使用Slim 3和slim-jwt-auth软件包,我正在使用https://github.com/tuupola/slim-jwt-auth#error上的文档中的示例代码
区别在于我打电话给\Slim\Middleware\JwtAuthentication
而不是Tuupola\Middleware\JwtAuthentication
。如果我使用该类找不到。一切正常,直到我想将错误输出添加到中间件设置中,这是我的代码:
$app->add(new \Slim\Middleware\JwtAuthentication([
"path" => "/mypath",
"passthrough" => "/mypath/get-auth",
"secret" => getenv("SKEY"),
"secure" => false,
"error" => function ($response, $args) {
$data = array();
$data["status"] = "error";
$data["message"] = $args["message"];
return $response
->withHeader("Content-Type", "application/json")
->getBody()->write(
json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
}
]));
错误输出表明它来自行$data["message"] = $args["message"];
。
我是在看问题但没有看到问题吗?
答案 0 :(得分:2)
"error"
闭包的函数签名为:
function ($request, $response, $args): Response
您缺少代码中的第一个参数,因此,当您使用$args
时,会得到Response
对象。