ruby-on-rails - rails 3.1。使用安全密码在控制台中创建一个用户

标签 ruby-on-rails ruby-on-rails-3

我想创建一个用户(管理员)并且我想使用控制台(没有用户注册模型)。我使用 RailsCasts (http://railscasts.com/episodes/270-authentication-in-rails-3-1) 的解决方案。
但我有一个问题:当我在控制台中执行 User.create(..., :password => "pass") 时,我的密码存储在数据库中而没有加密(如“pass”)。而且我无法使用我的数据登录。

如何从控制台创建用户? :)

最佳答案

直接来自 Rails API

# Schema: User(name:string, password_digest:string)
class User < ActiveRecord::Base
  has_secure_password
end

user = User.new(:name => "david", :password => "", :password_confirmation => "nomatch")
user.save                                                      # => false, password required
user.password = "mUc3m00RsqyRe"
user.save                                                      # => false, confirmation doesn't match
user.password_confirmation = "mUc3m00RsqyRe"
user.save                                                      # => true
user.authenticate("notright")                                  # => false
user.authenticate("mUc3m00RsqyRe")                             # => user

您需要包含 :password_confirmation => "pass在你的哈希中!

对,所以看看has_secure_password你想表演BCrypt::Password.create(unencrypted_password)获得它。您将需要 bcrypt-ruby gem 来做上面的事情。

关于ruby-on-rails - rails 3.1。使用安全密码在控制台中创建一个用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7919584/

相关文章:

javascript - 有没有办法更新 gon (ror gem) 变量

ruby-on-rails - 如何在Ruby中正确使用inject方法

ruby-on-rails - 每次迁移后是否隐式调用 reset_column_information

ruby-on-rails - 无法识别 rails 中 S3.yml 中的 ENV 变量

ruby-on-rails - RHTML 在输出中显示 HTML 标签

css - 修复 SyntasticCheck Bootstrap 错误。 Vim 语法插件

用于生成多线图表的 Java jar 文件(Java 库)可以在我的 Rails 应用程序中使用吗?

ruby-on-rails - Rails 更新操作因 rails4、mongoid 而失败。创建好

ruby-on-rails - 无法设置 Heroku 时区

ruby - Rails 对象生命周期 - 跨事务对象创建和销毁