Ruby on Rails
Lagra autentiseringsnycklar på ett säkert sätt
Sök…
Introduktion
Många tredjeparts API: er kräver en nyckel, vilket gör att de kan förhindra missbruk. Om de ger dig en nyckel är det mycket viktigt att du inte begår nyckeln i ett offentligt arkiv, eftersom det här gör att andra kan stjäla din nyckel.
Lagra autentiseringsnycklar med Figaro
Lägg till gem 'figaro'
till din Gemfile och kör bundle install
. Kör sedan bundle exec figaro install
; detta skapar config / application.yml och lägger till den i din .gitignore-fil, vilket förhindrar att den läggs till versionskontroll.
Du kan lagra dina nycklar i application.yml i detta format:
SECRET_NAME: secret_value
där SECRET_NAME och secret_value är namnet och värdet på din API-nyckel.
Du måste också namnge dessa hemligheter i config / secrets.yml. Du kan ha olika hemligheter i varje miljö. Filen ska se ut så här:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
Hur du använder dessa tangenter varierar, men säger till exempel att some_component
i utvecklingsmiljön behöver tillgång till secret_name
. I config / miljöer / utveckling.rb skulle du lägga till:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
Slutligen, låt oss säga att du vill spinna upp en produktionsmiljö på Heroku. Detta kommando laddar upp värdena i config / miljøer / produktion.rb till Heroku:
$ figaro heroku:set -e production