Есть ли способ изящно изменить рельсы secret_key_base?
Предположим, мы хотим изменить наше приложение Rails secret_key_base
. Есть ли способ сделать это, чтобы сразу не выходить из системы со всех наших пользователей?
При обновлении с Rails 3.2 до 4 с соответствующим изменением от secret_token
до secret_key_base
, рельсы помогли с миграцией, обновив файлы cookie новых пользователей по мере их поступления на сайт. После того, как посетила большая часть пользователей, вы можете переключиться на secret_key_base
исключительно без их регистрации.
Можно ли использовать эту функцию для изменения secret_key_base
, скажем, если разработчик уйдет или что-то в этом роде? Идея состоит в том, чтобы установить новый secret_key_base
, который будет переключать куки пользователей, когда они придут на сайт. Как только хорошая доля посетила, вы можете сделать жесткий переключатель и удалить старый secret_key_base
.
Я нашел старый запрос на восстановление rails, который, похоже, начинает работать с этой функциональностью, но они, похоже, перестали работать над ним.
Ответы
Ответ 1
Чтобы выполнить эту работу, вы должны настроить сами рельсы, управляющие версиями. Я не думаю, что этот ответ будет выбран, но я хотел бы предупредить вас о том, насколько глубокими могут быть эти изменения, и отсутствием безопасности, которую вы принесли в свое приложение.
Ответ 2
сначала генерирует секретный
rake secret
и установите эти значения в config/secrets.yml
development:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
test:
secret_key_base:
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
, а затем введите секретный ключ в свой .bashrc
gedit .bashrc
вставьте его в конец файла
export SECRET_KEY_BASE='YOUR SECRET KEY'
Ответ 3
рельсы < 5 rake secret
рельсы 5 rails secret