У меня есть API-интерфейс, который использует PHP-маршрутизатор Bramus и проверяет JWT из Auth0.Все это прекрасно работает, но я стремлюсь расширить функциональность и получить дополнительную информацию из JWT, которую я могу затем передать вызовам API.
То есть, когда пользователь выполняет вызов API, он отправляет пользователюID в качестве переменной в URL.Однако это значение уже есть в JWT, поэтому в целях безопасности я хочу извлечь идентификатор пользователя из JWT, а не передавать его через URL.
Вот фрагмент кода маршрутизацииЯ пытаюсь использовать:
....
$router->before('GET|POST', '/api.*', function() use ($app) {
$userid = '12345';
});
// Check for read:messages scope
$router->before('GET', '/api/private-scoped', function() use ($app) {
if (!$app->checkScope('read:messages')){
header('HTTP/1.0 403 forbidden');
header('Content-Type: application/json; charset=utf-8');
echo json_encode(array("message" => "Insufficient scope."));
exit();
}
});
$router->get('/api/users/get-info/(\w+)', function($userid) use ($app) {
header('Content-Type: application/json; charset=utf-8');
echo json_encode($app->getUserInfo($userid));
});
$router->get('/api/users/test', function() {
header('Content-Type: application/json; charset=utf-8');
echo json_encode(array("user" => $userid));
});
....
Когда я посещаю /api/users/test
, я получаю следующий ответ:
{
"user": null
}
Как мне получить переменную $userid
для передачи в маршрутизаторчтобы я мог использовать его в других функциях?