gpt4 book ai didi

ruby-on-rails - rails : How to store mailer password safely?

转载 作者:行者123 更新时间:2023-12-03 11:07:15 25 4
gpt4 key购买 nike

嗨,我在 heroku 和 github 上有我的 rails 应用程序,目前我在我的应用程序中使用邮件程序:

ActionMailer::Base.smtp_settings = {
:address => "smtp.gmail.com",
:port => 587,
:user_name => "myemail@gmail.com",
:password => "PasswordShouldGoHere",
:authentication => "plain",
:enable_starttls_auto => true
}

我不希望我的电子邮件和密码在我的 github 帐户上可见,因为人们可以登录并窃取我的信息。但是,如果我输入了一个假密码,那么当邮件程序应该发送时,我的应用程序会在 heroku 上给我一个错误。我知道我可以先将真实的电子邮件和密码推送到 heroku,然后编辑它并将假密码放在我的 github 帐户中,但是有更好的方法吗?

最佳答案

就像其他人说的,您可以通过使用 ENV 来实现这种安全性。变量。这是如何做到的:

config.action_mailer.smtp_settings = {
user_name: ENV["MAILER_EMAIL"],
password: ENV["MAILER_PASSWORD"]
}

现在,在 生产 (Heroku),您所要做的就是 follow this guide .它基本上相当于打开你的控制台并输入:
heroku config:set MAILER_EMAIL=email@example.com MAILER_PASSWORD=password

发展 ,您可以在 config/initializers 文件夹中创建一个文件,其名称类似于 app_env_vars.rb .在里面,放置以下内容:
ENV['MAILER_EMAIL'] = 'email@example.com'
ENV['MAILER_PASSWORD'] = 'password'

为了防止这个新创建的文件被推送到你的源代码管理中,你应该把它添加到你的 .gitignore 中。 :
/config/initializers/app_env_vars.rb

但是,存在一个问题,因为初始化文件仅在环境之后加载,因此还有最后一件事要做。转到您的 environment.rb文件并添加以下 之前 Yourapp::Application.initialize! :
# Load the app's custom environment variables here, before environments/*.rb
app_env_vars = File.join(Rails.root, 'config', 'initializers', 'app_env_vars.rb')
load(app_env_vars) if File.exists?(app_env_vars)

你完成了!

但是,如果您觉得所有这些配置都很麻烦,那么我建议您使用 Figaro gem .它可以完成我所描述的一切以及更多!

关于ruby-on-rails - rails : How to store mailer password safely?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13294194/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com