Зміни в документі Версія 6: Налаштування
Остання зміна 2024/07/11 10:07 автором Ashterix
Підсумок
-
Властивості сторінки (1 змінено, 0 додано, 0 видалено)
Подробиці
- Властивості сторінки
-
- Вміст
-
... ... @@ -1,1 +1,71 @@ 1 -текст 1 +{{box cssClass="floatinginfobox" width="400px" title="**Зміст**"}} 2 +{{toc/}} 3 +{{/box}} 4 + 5 +(% class="wikigeneratedid" %) 6 +Всі налаштування бандла знаходяться в файлі {{code language="none"}}config/packages/ufo_json_rpc.yaml{{/code}}. 7 + 8 +(% class="wikigeneratedid" %) 9 +Є можливість налаштувати параметри захисту API та деякі параметри формату даних, що віддається при запиті документації. 10 + 11 += {{code language="none"}}security{{/code}} = 12 + 13 +Наразі єдиним механізмом захисту доступу до вашого API є встановлення перевірки ключа доступу (api_token). 14 + 15 +== {{code language="none"}}protected_methods{{/code}} == 16 + 17 +(% class="wikigeneratedid" %) 18 +Цей параметр приймає масив назв http методів, які мають бути захищені. 19 + 20 +(% class="wikigeneratedid" %) 21 +За замовченням ввімкнут захист лише для методу POST. Ви можете: 22 + 23 +* вказати пустий масив {{code language="none"}}[]{{/code}} щоб зробити API повністю відкритим 24 + 25 +{{code language="yaml"}} 26 +# config/packages/ufo_json_rpc.yaml 27 +ufo_json_rpc: 28 + security: 29 + protected_methods: [] 30 +{{/code}} 31 + 32 +* вказати додатково захист для методу GET, що зробить запит документації недоступним без токену в заголовках запиту 33 + 34 +{{code language="yaml"}} 35 +# config/packages/ufo_json_rpc.yaml 36 +ufo_json_rpc: 37 + security: 38 + protected_methods: ['GET', 'POST'] 39 +{{/code}} 40 + 41 +(% id="cke_bm_164641S" style="display:none" %) (%%)Якщо ви захищаєте ваш API через {{code language="none"}}protected_methods{{/code}}, вам необхідно налаштувати токени, по яким буде відкритий доступ. 42 + 43 +Перш за все, треба визначитися з назвою токену. 44 + 45 +== {{code language="none"}}token_key_in_header{{/code}} == 46 + 47 +Компонент {{code language="none"}}RpcSecurity{{/code}} буде шукати в заголовках запиту специфічний ключ, який ви можете встановити в налаштуваннях пакету, значення за замовченням {{code language="none"}}token_key_in_header: 'Ufo-RPC-Token'{{/code}}, ви можете встановити будь-яке інше значення яке відповідає умовам формування заголовків протоколу HTTP 48 + 49 + 50 +Розглянемо варіант що у вас 51 + 52 + 53 + 54 + 55 + 56 + 57 +{{code language="yaml"}} 58 +# config/packages/ufo_json_rpc.yaml 59 +ufo_json_rpc: 60 + security: 61 + protected_methods: ['GET', 'POST'] # protection of GET and POST requests 62 + token_key_in_header: 'Ufo-RPC-Token' # Name of the key in the header 63 + clients_tokens: 64 + - 'ClientTokenExample' # hardcoded token example. Importantly!!! Replace or delete it! 65 + - '%env(resolve:UFO_API_TOKEN)%e' # token example from .env.local 66 +{{/code}} 67 + 68 + 69 +== == 70 + 71 +