Как использовать переменные на веб-сайте
Не передавайте приватные переменные в браузер; отдавайте сайту только публичную конфигурацию через backend.
Что это
Веб-сайт выполняется в браузере пользователя. Все, что попадает в браузерный код, можно увидеть в инструментах разработчика, поэтому приватные переменные проекта нельзя передавать напрямую на сайт.
Когда использовать
- Сайту нужна безопасная публичная настройка: флаг функции, публичный адрес API или идентификатор аналитики.
- Сайту нужно работать с приватным ключом через backend-сервис.
- Нужно разделить публичную конфигурацию и приватные значения проекта.
Перед началом
- Определите, какие значения действительно можно показать пользователю.
- Оставьте приватные ключи и токены на backend-сервисе.
- Проверьте, что сайт получает только публичную конфигурацию.
Как сделать
- Храните приватные значения в переменных проекта.
- Читайте их только в backend-сервисе.
- Сделайте backend-маршрут, который возвращает сайту только публичные поля.
- На сайте загрузите эту публичную конфигурацию перед использованием.
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
При доступном нативном разделе откройте выбранное окружение проекта и Переменные. После записи проверьте правила использования переменных и отдельно выполните нужную публикацию. Запись ключа не обновляет уже развёрнутое приложение автоматически.