2017-05-27 2 views
0

Ich habe ein Modell User:"BCrypt :: Fehler :: InvalidHash: ungültige Hash", wenn Passwort zu authentifizieren versucht

class User < ActiveRecord::Base 
    has_secure_password 
end 

ich gem 'bcrypt', '3.1.11' bin mit. Aber aus irgendeinem Grund funktioniert die authenticate Methode nicht.

Ich habe einen Benutzer Datensatz user wo user.password_digest == "password". Aber in user.authenticate('password') in Konsole eingeben gibt die folgende Fehlermeldung:

> user.authenticate('password') 
BCrypt::Errors::InvalidHash: invalid hash 
from /home/.rvm/gems/bcrypt-3.1.11/lib/bcrypt/password.rb:60:in 'initialize' 

Ich glaube nicht einmal das Argument soll ein Hash sein: nicht angenommen, nur eine Zeichenfolge sein? Was ist denn hier los?

Antwort

1

Es ist kein Hash Objekt, es bezieht sich auf die hash value in password_digest, die scheint ungültig zu sein, das heißt, Sie haben es falsch eingestellt.

Versuchen Sie folgendes:

user.password = 'password' 
user.password_confirmation = 'password' 
user.save 

Jetzt können Sie authentifizieren mit:

user.authenticate('password') 
Verwandte Themen