Я следовал инструкциям, чтобы сохранить маркер в контейнере с функцией обратного вызова (https://github.com/tuupola/slim-jwt-auth):не удается получить доступ к токен хранится в контейнере
$app = new \Slim\App();
$container = $app->getContainer();
$container["jwt"] = function ($container) {
return new StdClass;
};
$app->add(new \Slim\Middleware\JwtAuthentication([
"path" => ["/"],
"passthrough" => ["/version", "/auth"],
"secret" => "mysecret",
"callback" => function ($request, $response, $arguments) use ($container) {
$container["jwt"] = $arguments["decoded"];
},
"error" => function ($request, $response, $arguments) {
$data["status"] = "error";
$data["message"] = $arguments["message"];
return $response
->withHeader("Content-Type", "application/json")
->write(json_encode($data, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT));
}
]));
Нет данных возвращается в ответ, кажется, $ this-> JWT пусто ,
$app->get("/user", 'getUsers');
function getUsers($req, $res, $args) {
$decode = $this->jwt;
print_r($decode);
}
Возможный дубликат [Access $ этого внутри маршрута в slim3 не работает «Использование $ это, когда не в контексте объекта»] (http://stackoverflow.com/questions/40362978/access-this- in-route-in-slim3-doesnt-work-using-this-when-not-in-objec) – jmattheis