Rails と mongodb を使用してアプリを開発しています。認証システムがありますが、まったく機能していません。しばらくして、その理由がわかりました。私が行った場合:
<% user = User.where(:email => 'test@test.com').first %>
<%= user.hash %> | <%= user.salt %>
戻り値:
287708835 | $2a$10$Arn.fJ0QT3zKRE748wNbXO
しかし、mongoで「同じ」ことをすると
db.users.find({'email' => 'test@test.com'})
戻り値:
{ "_id" : ObjectId("5103834b108f67f3e9000005"), "email" : "test@test.com", "salt" : "$2a$10$Arn.fJ0QT3zKRE748wNbXO", "hash" : "$2a$10$Arn.fJ0QT3zKRE748wNbXOYBI7k54x6HKypo0m4LyUrvERpTKygSe" }
したがって、ソルトは問題なく取得できますが、ハッシュは取得できません。
私は塩とハッシュを生成するためにbcrypt-rubyを使用しています
BCrypt::Engine.generate_salt
BCrypt::Engine.hash_secret(password, salt)
データベースから実際のハッシュを取得するにはどうすればよいですか?
前もって感謝します (: