Rails http_basic_authenticate_with

时间:2013-11-06 05:37:09

标签: ruby-on-rails authentication passwords

刚刚有一个关于http_basic_authenticate_with的新手问题。如果我在控制器中放置一些简单的东西,

http_basic_authenticate_with :name => "user", :password => "secret"

如何确保密码安全。我只是希望能够将应用程序置于生产/发布中,并以安全的方式保护整个应用程序密码。

感谢您的任何建议。

2 个答案:

答案 0 :(得分:3)

我可以建议在环境中输入密码。 例如,您可以执行http://www.cyberciti.biz/faq/set-environment-variable-linux/ 导出APP_USER ='secret_user' export APP_PASSWORD ='secret_password'

# then in controller
http_basic_authenticate_with :name => ENV['secret_user'], :password => ENV['secret_password']

答案 1 :(得分:0)

虽然选择了正确的答案;我想添加其他选项。

场景:假设您正在创建博客并希望进行简单的身份验证。在post_controller.rb中,您需要添加以下内容:

http_basic_authenticate_with name: ENV["BLOG_USERNAME"],password: ENV["BLOG_PASSWORD"],except: [:show]

为了“安全地”与这些变量进行通信,请选择一个选项:

  1. 选项1

    • application.yml文件夹中创建config文件;您将在何处添加配置(用户名和密码),例如:

      BLOG_USERNAME: "admin"
      BLOG_PASSWORD: "12345"
      
    • 现在,由于application.yml包含敏感信息,我们希望Git忽略该文件。因此,请将以下内容添加到.gitignore文件中:/config/application.yml

    • 现在我们需要通过在application.rb文件中添加以下行来加载这些变量:

      ENV.update YAML.load(File.read(File.expand_path('../application.yml', __FILE__)))
      
  2. 选项2 使用Figaro gem

    • Gemfile添加gem "figaro"中,运行bundle install并运行figaro install
      费加罗将创建config/application.yml文件并将其添加到您的.gitignore
    • 现在将您自己的配置添加到此文件,类似于上面的步骤1,也按照步骤3完成,然后您就完成了! 查看Figaro's documentation了解详情。