Ruby on Rails
Безопасное сохранение ключей аутентификации
Поиск…
Вступление
Многим сторонним API требуется ключ, позволяющий им предотвращать злоупотребления. Если они выдают вам ключ, очень важно, чтобы вы не передавали ключ в общий репозиторий, так как это позволит другим украсть ваш ключ.
Хранение ключей аутентификации с помощью Figaro
Добавьте gem 'figaro'
в свой Gemfile и запустите bundle install
. Затем запустите bundle exec figaro install
; это создаст config / application.yml и добавит его в ваш файл .gitignore, не допуская его добавления в контроль версий.
Вы можете хранить свои ключи в application.yml в таком формате:
SECRET_NAME: secret_value
где SECRET_NAME и secret_value - это имя и значение вашего ключа API.
Вы также должны назвать эти секреты в config / secrets.yml. У вас могут быть разные секреты в каждой среде. Файл должен выглядеть так:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
Как вы используете эти ключи, зависит, но скажем, например, some_component
в среде разработки нуждается в доступе к secret_name
. В config / environment / development.rb вы должны поставить:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Наконец, допустим, вы хотите развернуть производственную среду на Heroku. Эта команда будет загружать значения в config / environment / production.rb в Heroku:
$ figaro heroku:set -e production