Налаштування бандлу

Версія 4.1 додана 2024/05/08 22:16 автором Ashterix

Всі налаштування бандла знаходяться в файлі config/packages/ufo_json_rpc.yaml.

Є можливість налаштувати параметри захисту API та деякі параметри формату даних, що віддається при запиті документації.

security

Наразі єдиним механізмом захисту доступу до вашого API є встановлення перевірки ключа доступу (api_token).

protected_methods

Цей параметр приймає масив назв http методів, які мають бути захищені.

За замовченням ввімкнут захист лише для методу POST. Ви можете:

  • вказати пустий масив [] щоб зробити API повністю відкритим
# config/packages/ufo_json_rpc.yaml
ufo_json_rpc:
   security:
       protected_methods: []
  • вказати додатково захист для методу GET, що зробить запит документації недоступним без токену в заголовках запиту
# config/packages/ufo_json_rpc.yaml
ufo_json_rpc:
   security:
       protected_methods: ['GET', 'POST']

Якщо ви захищаєте ваш API через protected_methods, вам необхідно налаштувати токени, по яким буде відкритий доступ.

Перш за все, треба визначитися з назвою токену.

token_key_in_header

Компонент RpcSecurity буде шукати в заголовках запиту специфічний ключ, який ви можете встановити в налаштуваннях пакету, значення за замовченням token_key_in_header: 'Ufo-RPC-Token', ви можете встановити будь-яке інше значення яке відповідає умовам формування заголовків протоколу HTTP


Формування заголовків протоколу HTTP

# config/packages/ufo_json_rpc.yaml
ufo_json_rpc:
   security:
       protected_methods: ['GET', 'POST']      # protection of GET and POST requests
       token_key_in_header: 'Ufo-RPC-Token'    # Name of the key in the header
       clients_tokens:
            - 'ClientTokenExample'              # hardcoded token example. Importantly!!! Replace or delete it!
            - '%env(resolve:UFO_API_TOKEN)%e'   # token example from .env.local