在Rails应用程序中,你可以使用Rails的配置文件和环境变量来实现凭据的轮换,而不需要重新启动服务器。下面是一个示例解决方法:
创建一个新的YAML文件来存储凭据,例如config/credentials.yml.enc
。
使用以下命令来创建一个新的凭据文件,并进行加密:
rails credentials:edit
这将打开一个文本编辑器,你可以在其中添加和编辑凭据。保存并关闭编辑器后,凭据文件将被加密保存。
config/database.yml
,使用ERB语法从凭据文件中加载凭据。例如:development:
username: <%= Rails.application.credentials.development[:database][:username] %>
password: <%= Rails.application.credentials.development[:database][:password] %>
Rails.application.credentials
来访问凭据。例如:username = Rails.application.credentials[:development][:database][:username]
password = Rails.application.credentials[:development][:database][:password]
config/application.yml
文件中设置环境变量:development:
database:
username: <%= ENV['DATABASE_USERNAME'] %>
password: <%= ENV['DATABASE_PASSWORD'] %>
这样,你就可以在不重新启动服务器的情况下轮换凭据。只需要更新环境变量的值,然后重新加载应用程序即可。