Я заканчиваю экспресс-приложение узла, где у меня есть ключ API для Sendgrid и Stripe, но я не уверен, как их сохранить в моем приложении, которое будет развернуто на Heroku (также несколько других переменных, которые я хотел бы хранить так же, как пароль db, а что нет). Я видел онлайн много людей, которые использовали process.env
, поэтому после некоторого поиска я попытался использовать dotenv
npm и даже с некоторыми проблемами со структурой приложения после попытки использовать dotenv
для моего ключа sendgrid, я получал ошибку каждый раз.где хранить ключи api в экспресс-узле для Heroku
Мой вопрос: может ли кто-нибудь предоставить некоторые подробные инструкции или способ безопасно хранить ключи API в моем экспресс-приложении узла, которые я буду развертывать в Heroku?
P.S. Я последовал за учебником по внедрению Passport.js
для Oauth2 через facebook, google и linkedIn, чтобы пользователи могли легко войти в приложение. Секреты приложения, идентификаторы и обратные вызовы извлекаются из json-файла в конфигурации вызова папки в моем приложении. Является ли эта информация безопасной, по крайней мере, при ее размещении и поиске в приложении? Должен ли я делать что-то подобное для моих ключей sendgrip и strip api? (Рисунок ниже)
Благодарим за быстрый ответ, но у меня есть вопросы, связанные с тем, чтобы убедиться, что я знаю, что происходит на каждом шагу. 1) Я предполагаю, что process.env.NODE_ENV будет либо установлен мной, либо оболочкой, либо система Heroku сделает ее «производственной», когда я развернусь, чтобы она не по умолчанию не была разработана, правильно? 2) Добавляет ли 'envFile' в фрагмент разработки в качестве JSON все пары KEY = VALUE для моих ключей или я помещаю это в часть' module.exports', которую вы разместили внизу, и если это case, что происходит в 'envFile'? Извините. Я хочу знать, что происходит ... – KellysOnTop23
Да, правильно. И да, это будет стандартный JSON. Подобно этому '{" VALUE ":« другое значение »}' и ничего больше. Нет 'module.exports'. Конечно, это характерно для моего примера. Вы можете использовать все, что хотите (т. Е. Загружать из текстового файла, yaml, csv). Основная идея заключается в том, что среда разработки должна загружать значения из файла, который вы можете занести, производство определяется в переменных среды, а тест обычно жестко закодирован. Итак, просто возьмите то, что вам нужно, и оно должно сработать для вас. –
Gotcha. Да, оглядываясь, все говорили об этом, но я не нашел подробного объяснения кода. Может быть, я просто не смотрел. Прежде чем я пойду и положу это в свой проект, я хотел бы задать еще один вопрос. После этого и получения всех моих ценностей на этом пути это будет безопасно? Я не ищу здесь fort knox, но достаточно, чтобы у меня были основы, и никто не может легко взять мои ключи. – KellysOnTop23