Я пытаюсь реализовать пакет LexikJwt для моего нового API: https://github.com/lexik/LexikJWTAuthenticationBundle
Я просто добавил свою собственную команду для создания правильного токена JWT, включая мои роли по умолчанию для локального тестирования. Следующим шагом будет защита моих маршрутов. Однако я не могу найти именно то, как это сделать. Это моя текущая реализация контроллера с использованием annotation
маршрутов
/**
* @Route(
* "/search",
* name="search",
* methods={"GET"},
* )
*/
class Search
{
/**
* @param AddressService $addressService
* @param Request $request
* @return JsonApiResponse
* @throws Exception
*/
public function __invoke(AddressService $addressService, Request $request)
{
$address = $addressService->createFromParams($request->query->all());
try {
$addressCollection = $addressService->search($address);
} catch (AddressNotFoundException $e) {
$addressCollection = [];
}
return new JsonApiResponse($addressCollection);
}
}
Однако в документах ничего не говорится о маршрутах аннотаций и только о конфигах yml на брандмауэрах безопасности. Главное, что мне нужно, это токен для проверки:
- Действителен ли токен (соответствует открытому ключу)
- Не истек ли токен
- маршрут, соответствующий заданным ролям
Например, я хочу, чтобы приведенный выше код соответствовал службе адресов, только если токен совпадает с указанным выше, а токен содержит роль или область действия: address:search
.
Надеюсь, кто-то может помочь,
Пим