轨道 3.1。在控制台中创建一个具有安全密码的用户

发布于 2024-12-12 01:15:49 字数 250 浏览 0 评论 0原文

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

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

I want to create one user (admin) and I want to use console (without user registration model). I use solution from RailsCasts (http://railscasts.com/episodes/270-authentication-in-rails-3-1).
But I have one problem: when I do User.create(..., :password => "pass") in console my password stored in database without encription (like "pass"). And I can't login with my data.

How can I create user from console? :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半岛未凉 2024-12-19 01:15:49

直接来自 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_pa​​ssword) 来获取它。你需要 bcrypt-ruby gem 来执行上述操作。

Straight from the 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

You need to include :password_confirmation => "pass in your hash!

Right, so taking a look at has_secure_password you want to perform BCrypt::Password.create(unencrypted_password) to obtain it. You'll need the bcrypt-ruby gem to do the above.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文