Ruby on Rails
प्रमाणीकरण कुंजी को सुरक्षित रूप से संग्रहीत करना
खोज…
परिचय
कई तृतीय-पक्ष API को एक कुंजी की आवश्यकता होती है, जिससे उन्हें दुरुपयोग को रोकने की अनुमति मिलती है। यदि वे आपको एक कुंजी जारी करते हैं, तो यह बहुत महत्वपूर्ण है कि आप सार्वजनिक रिपॉजिटरी में कुंजी को कमिट न करें, क्योंकि यह दूसरों को आपकी चाबी चोरी करने की अनुमति देगा।
अंजीर के साथ प्रमाणीकरण कुंजी संग्रहीत करना
अपने Gemfile में gem 'figaro'
अंजीर gem 'figaro'
जोड़ें और bundle install
चलाएँ। फिर bundle exec figaro install
; यह config / application.yml बनाएगा और इसे आपकी .gitignore फ़ाइल में जोड़ देगा, इसे संस्करण नियंत्रण में जोड़े जाने से रोका जाएगा।
आप इस प्रारूप में application.yml में अपनी कुंजियाँ संग्रहीत कर सकते हैं:
SECRET_NAME: secret_value
जहां SECRET_NAME और secret_value आपके API कुंजी का नाम और मूल्य हैं।
आपको इन रहस्यों को config / secret.yml में भी नाम देना होगा। आपके पास प्रत्येक वातावरण में अलग-अलग रहस्य हो सकते हैं। फ़ाइल इस तरह दिखनी चाहिए:
development:
secret_name: <%= ENV["SECRET_NAME"] %>
test:
secret_name: <%= ENV["SECRET_NAME"] %>
production:
secret_name: <%= ENV["SECRET_NAME"] %>
आप इन कुंजियों का उपयोग कैसे करते हैं, यह भिन्न होता है, लेकिन उदाहरण के लिए some_component
विकास के माहौल में secret_name
तक पहुँच की आवश्यकता होती है। विन्यास / वातावरण / विकास में। आप डाल देंगे:
Rails.application.configure do
config.some_component.configuration_hash = {
:secret => Rails.application.secrets.secret_name
}
end
अंत में, मान लें कि आप हर्को पर एक उत्पादन वातावरण बनाना चाहते हैं। यह कमांड हरोकू को कॉन्फिगर / वातावरण / प्रोडक्शन में मान अपलोड करेगा:
$ figaro heroku:set -e production