我在控制器中写了以下内容:
http_basic_authenticate_with name: "foo", password: "bar", except: [:new, :show, :edit, :create]
但是当我把它推到我的仓库时,密码就在那里供所有人查看。有没有办法加密密码?
答案 0 :(得分:1)
您可能想要使用环境变量:) 有宝石(基本上与所有东西一样):https://github.com/bkeepers/dotenv
在您的.env文件中,您有以下内容:
AUTHENTICATION_USERNAME="foo"
AUTHENTICATION_PASSWORD="bar"
在你的控制器中,你可以这样写:
http_basic_authenticate_with name: ENV['AUTHENTICATION_USERNAME'], password: ENV['AUTHENTICATION_PASSWORD'], except: [:new, :show, :edit, :create]
这样您的代码就会与实际信息完全分开。 确保不将.env文件添加到git-repository中,方法是将其添加到gitignore:
.env
这样做是否会将您在.env
中设置的变量加载到现有环境变量中。这样,有人需要实际登录到您的服务器并访问该特定文件才能获得用户名/密码。这比在控制器中以纯文本形式使用用户名/密码更安全;)