Защищен мой маршрут аннотаций для LexikJwt - PullRequest
0 голосов
/ 21 октября 2019

Я пытаюсь реализовать пакет 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.

Надеюсь, кто-то может помочь,

Пим

1 Ответ

0 голосов
/ 13 ноября 2019

Проблема заключалась в том, что роль должна начинаться с ROLE_. Хотя это можно переопределить, но это был случай использования.

...