我想创建一个用户(管理员)并且我想使用控制台(没有用户注册模型)。我使用 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/