Der secret_token.rbInhalt der Datei enthält eine lange, zufällige Zeichenfolge, mit der die Integrität signierter Cookies überprüft wird (z. B. Benutzersitzungen, wenn Personen in Ihrer Web-App angemeldet sind).
Die Dokumentation sagt:
Verwenden Sie Ihre vorhandene secret_key_base aus dem secret_token.rbInitialisierer, um die Umgebungsvariable SECRET_KEY_BASE für alle Benutzer festzulegen, die die Rails-App im Produktionsmodus ausführen. Alternativ können Sie einfach die vorhandene secret_key_base vom secret_token.rbInitialisierer in die Datei secret.yml im Produktionsabschnitt kopieren und ersetzen <%= ENV["SECRET_KEY_BASE"] %>.
Da es sich um eine wichtige Datei handelt und Sie sie nicht in .gitignore ablegen können, wird empfohlen, die env-Variable zum Speichern des secret_key_baseWerts zu verwenden:
erstellen .envoder .powenvarchivieren und speichern als:
export SECRET_TOKEN="9489b3eee4eccf317ed77407553e8adc97baca7c74dc7ee33cd93e4c8b69477eea66eaedeb18af0be2679887c7c69c0a28c0fded0a71ea472a8c4laalal19cb"
Und dann rein config/initializers/secret_token.rb
YourAppName::Application.config.secret_key_base = if Rails.env.development? or Rails.env.test?
('a' * 30)
else
ENV['SECRET_TOKEN']
end
Dieser Artikel ist (ein bisschen alt und) lang, aber voller nützlicher Informationen zum Thema.
UPDATE 04.05.15
Ab Rails 4.2 gibt es keine secret_token.rbDatei mehr . Nach neuer Konvention gibt es eine config/secrets.ymlDatei, in der die Geheimnisse der Anwendung gespeichert werden sollen.
Lesen Sie, wie Sie eine vorhandene App entsprechend den Innovationen auf 4.2.x aktualisieren können.
Technisch gesehen besteht der Zweck secrect_key_basedarin, die geheime Eingabe für die key_generatorMethode der Anwendung zu sein (Prüfung Rails.application.key_generator).
Die Anwendung ist key_generator, und somit secret_key_baseverwendet werden, um drei Kerne innerhalb des Rails - Framework verfügen über :
- Ableiten von Schlüsseln für verschlüsselte Cookies, auf die über zugegriffen werden kann
cookies.encrypted.
- Ableiten des Schlüssels für von HMAC signierte Cookies, auf die über zugegriffen werden kann
cookies.signed.
- Ableiten von Schlüsseln für alle benannten
message_verifierInstanzen der Anwendung .
Weitere Informationen zu den drei Themen finden Sie im Artikel von @michaeljcoyne .
secret_key_basewird weiterhin verwendet, aberconfig/credentials.yml.encstattdessen gespeichert . Diese Datei ist verschlüsselt. Weitere Informationen zum neuen Anmeldeinformationssystem finden Sie hier oder führen Sie es ausrails credentials:help.