#reactjs #access-token
#reactjs #access-token
Вопрос:
Извините, если это может быть немного тривиальным вопросом, но я хочу быть уверенным и не смог точно найти окончательный ответ в Интернете.
Я пишу небольшое приложение, которое использует Mapbox, и я использую для него react-map-gl. Им требуется токен доступа на стороне клиента, поэтому они предлагают использовать переменную среды. Мой вопрос в том, можно ли просто создать ENV-файл во внешней папке и поместить туда переменную?
Спасибо!
Комментарии:
1. да, вы можете использовать .env, просто убедитесь, что он находится в вашем gitignore, чтобы он никогда не отображался в вашем коде, в этом случае он никогда не будет доступен пользователю, просто в вашей локальной среде
2. Будет сделано, большое вам спасибо!
Ответ №1:
Вы не можете уйти от раскрытия ключей API во внешнем интерфейсе. Если кто-то захочет покопаться в вашем исходном коде, он их найдет.
Тем не менее, вы всегда должны настраивать любой ключ API, который виден в Интернете, чтобы он был ограничен конкретными ссылками, то есть доменом вашего веб-сайта.
Обычно это делается во время создания ключа API через панель инструментов вашего провайдера.
Для Mapbox вы можете прочитать документацию по ограничению токенов API здесь . В нем говорится:
Вы можете сделать свои токены доступа к веб-картам более безопасными, добавив ограничения URL. Когда вы добавляете ограничение URL к токену, этот токен будет работать только для запросов, исходящих из указанных вами URL-адресов.Токены без ограничений будут работать для запросов, исходящих с любого URL.
(выделение мое собственное)
Им требуется токен доступа на стороне клиента, поэтому они предлагают использовать переменную среды. Мой вопрос в том, можно ли просто создать env-файл во интерфейсной папке и поместить туда переменную?
Есть две причины, по которым переменные среды используются при разработке интерфейса:
-
Для удобства, чтобы сохранить конфигурацию, зависящую от среды, удаленной из исходного кода.
-
Чтобы сохранить конфиденциальную информацию из исходного кода. Вы не должны передавать токены API или другие аналогичные конфиденциальные данные в свой контроль версий.
Использование переменных среды во внешнем коде не позволит хранить их значения в секрете от конечного пользователя. Какое бы значение переменной среды ни было во время сборки, оно будет видно в скомпилированном выводе.