このsecret_tokenはセッションデータを署名するために使う秘密鍵 Σ(゚д゚lll)
これを変更してWebサーバにデプロイすれば問題ないけど…
色々調べてるとみんないろんな方法で対処している
rake secretで生成された文字列をコピーする(絶対忘れるw
Rakeタスクを作成する(僕はこれにした
$ rails g task generate_secret_token
lib/tasks/generate_secret_token.rake
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
namespace :secret do | |
secret_token_file = Rails.root.join('config', 'initializers', 'secret_token.rb') | |
file secret_token_file do | |
require 'securerandom' | |
token = SecureRandom.hex(64) | |
require 'active_support/core_ext/string/strip' | |
application_name = Rails.application.class.name | |
content = <<-EOS.strip_heredoc | |
#{application_name}.config.secret_token = '#{token}' | |
EOS | |
secret_token_file.open('w') do |f| | |
f.write(content) | |
end | |
puts "Generated secret token and write it to #{secret_token_file.relative_path_from(Rails.root)}" | |
end | |
desc 'Generate secret token' | |
task generate: secret_token_file | |
end |
参考というかそのままw → config/initializers/secret_token.rb を生成する Rake タスク
登録されているかチェックしてrakeコマンド
$ rake -vT $ rake secret:generate
リポジトリからはsecret_token.rbは削除した
でも、よく考えると…
これって、デプロイする度に再起動しないといけない?…(´・ω・`)
Herokuだと環境変数に登録しておくのもアリだ
$ heroku config:add SECRET_TOKEN=xxxxx
config/initializers/secret_token.rb
#Hogeはアプリ名 Hoge::Application.config.secret_token = ENV['SECRET_TOKEN']
なんか良い方法ないか?w
( ̄(エ) ̄)彡☆
0 件のコメント:
コメントを投稿