Der secret_token.rb
Inhalt 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.rb
Initialisierer, 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.rb
Initialisierer 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_base
Werts zu verwenden:
erstellen .env
oder .powenv
archivieren 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.rb
Datei mehr . Nach neuer Konvention gibt es eine config/secrets.yml
Datei, 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_base
darin, die geheime Eingabe für die key_generator
Methode der Anwendung zu sein (Prüfung Rails.application.key_generator
).
Die Anwendung ist key_generator
, und somit secret_key_base
verwendet 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_verifier
Instanzen der Anwendung .
Weitere Informationen zu den drei Themen finden Sie im Artikel von @michaeljcoyne .
secret_key_base
wird weiterhin verwendet, aberconfig/credentials.yml.enc
stattdessen gespeichert . Diese Datei ist verschlüsselt. Weitere Informationen zum neuen Anmeldeinformationssystem finden Sie hier oder führen Sie es ausrails credentials:help
.