2

虽然,这不是 CouchDB 特定的,但我使用的库. 我在 Ruby 中使用couchrest_model创建User如下模型:

class User < CouchRest::Model::Base
  use_database 'sample'
  property :_id, String
  property :email, String
  # property :password
  timestamps!
end

我对这里的密码存储感到困惑。我想使用 BCrypt 但是当我做这样的事情时:

class User < CouchRest::Model::Base
  include BCrypt

  use_database 'sample'
  property :_id, String
  property :email, String
  property :password, BCryptHash

  timestamps!
end

我被告知这User::BCryptHash是一个未初始化的常数。我当然需要bcrypt事先图书馆。您能帮我解决 BCrypt 问题或建议在 CouchDB 中存储密码的不同方式吗?我已经查看了哈希密码,但是我不确定如何实现这一点。

4

1 回答 1

1
require 'couchrest_model'

class User < CouchRest::Model::Base
  include ActiveModel::SecurePassword

  use_database 'sample'
  has_secure_password

  property :username, String
  property :email, String
  property :password_digest, String

  timestamps!

  design { view :by_email }
end

User.create(:username => 'rafalchmiel', :email => 'hi@rafalchmiel.com', :password => 'password', :password_confirmation => 'password')
User.create(:username => 'bar', :email => 'hi@bar.com', :password => 'password213', :password_confirmation => 'password213')
User.create(:username => 'foo', :email => 'hi@foo.com', :password => 'password12111', :password_confirmation => 'password12111')

有关此 GitHub 问题为何有效的更多信息。

于 2013-11-24T09:57:04.517 回答