Rails 3.1.使用安全密码在控制台中创建一个用户

Ole*_*sko 6 ruby-on-rails ruby-on-rails-3

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

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

Mic*_*lva 21

直接来自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
Run Code Online (Sandbox Code Playgroud)

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

是的,所以看看has_secure_password你想要BCrypt::Password.create(unencrypted_password)获得它.你需要bcrypt-ruby宝石来做上面的事情.