Перейти к содержанию

Как использовать переменные на веб-сайте

Не передавайте приватные переменные в браузер; отдавайте сайту только публичную конфигурацию через backend.

Что это

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

Когда использовать

  • Сайту нужна безопасная публичная настройка: флаг функции, публичный адрес API или идентификатор аналитики.
  • Сайту нужно работать с приватным ключом через backend-сервис.
  • Нужно разделить публичную конфигурацию и приватные значения проекта.

Перед началом

  • Определите, какие значения действительно можно показать пользователю.
  • Оставьте приватные ключи и токены на backend-сервисе.
  • Проверьте, что сайт получает только публичную конфигурацию.

Как сделать

  1. Храните приватные значения в переменных проекта.
  2. Читайте их только в backend-сервисе.
  3. Сделайте backend-маршрут, который возвращает сайту только публичные поля.
  4. На сайте загрузите эту публичную конфигурацию перед использованием.
const config = await fetch('/api/public-config').then((response) =>
  response.json(),
);

Если сайту нужно выполнить действие с приватным ключом, отправьте запрос на backend-сервис. Backend прочитает переменную проекта и вернет сайту только безопасный результат.

Например, backend может вернуть название приложения и публичный адрес API. Ключ интеграции, пароль и серверный runtime-токен в такой ответ не включаются. Маршрут /api/public-config в примере — маршрут вашего приложения: создайте его в backend, он не появляется автоматически в Agnostic.

Что дальше

Проверяйте каждый новый параметр перед публикацией сайта: если значение нельзя показать пользователю, оно должно оставаться на backend-сервисе.

Если поменяли переменную backend, опубликуйте сервис в нужной среде заново. Если публичная настройка записана в коде сайта, нужна новая публикация сайта.

Частые проблемы

ПроблемаЧто сделать
Приватный ключ нужен сайтуПеренесите действие на backend-сервис и отдавайте сайту только результат.
Значение видно в браузереСчитайте его публичным и замените, если оно должно было оставаться приватным.
Разные среды показывают одно значениеПроверьте выбранную среду и публикацию backend-сервиса.

На iPhone

При доступном нативном разделе откройте выбранное окружение проекта и Переменные. После записи проверьте правила использования переменных и отдельно выполните нужную публикацию. Запись ключа не обновляет уже развёрнутое приложение автоматически.