Использование токенов аутентификации в .npmrc - PullRequest
0 голосов
/ 01 ноября 2018

У меня есть проект, в котором мы используем библиотеку шрифтов awesome 5. Я следовал инструкциям, которые написаны здесь и добавил .npmrc файл с моим токеном авторизации.

Это безопасное поведение, чтобы положить это в репо? Я хочу, чтобы разработчики имели доступ к нему, но если репозиторий станет публичным, мы можем раскрыть токен.

Какая лучшая практика в такой ситуации?

1 Ответ

0 голосов
/ 31 марта 2019

Это определенно НЕ безопасное поведение для помещения токена в любой проверенный файл git, включая .npmrc.

Ниже приведены шаги, которые ваша команда может предпринять для безопасного использования вашего токена npm.

Существуют две различные среды, которые необходимо учитывать:

  1. локальная машина каждого разработчика
  2. платформа развертывания приложения

местный разработчик

Следование инструкциям Global Set Up , на которые вы ссылались в своем вопросе, не является решением.

Создайте файл .npmrc, аналогичный инструкциям "На проект" , , но замените свой реальный токен именем переменной с префиксом $. то есть:

@fortawesome:registry=https://npm.fontawesome.com/
//npm.fontawesome.com/:_authToken=$TOKEN

npm обнаружит файл переменных среды с именем .env. Итак, в файле .gitignore d .env добавьте пару значений секретного ключа, например:

TOKEN=ABC123

Вы также можете добавить к имени переменной «NPM_CONFIG_» в соответствии с npm-config документами , то есть:

NPM_CONFIG_TOKEN=ABC123

Теперь, когда разработчик запускает npm i, шрифт-удивительные зависимости будут загружаться из частного репозитория.

ПРИМЕЧАНИЕ : Не следуйте текущей документации по npm-config относительно синтаксиса переменных среды! См. этот ответ о переполнении стека , то есть:

? BAD npm-config ENVIRONMENT VAR SYNTAX ?

${TOKEN}
? GOOD npm-config ENVIRONMENT VAR SYNTAX ?

$TOKEN

платформа для развертывания приложений

Выполните все шаги, описанные в разделе о локальном устройстве, ПЛЮС:

  • создать переменную среды на платформе с тем же именем, что и в файле .npmrc.

Если вашим хостом приложения является Netlify, см. Их Документы переменных среды сборки .

...