2016-07-24 26 views
-2
def create 
user_password = params[:session][:password] 
user_email = params[:session][:email] 
user = user_email.present? && User.find_by(email: user_email) 

if user and user.valid_password? user_password 
    sign_in user 
    user.generate_authentication_token! 
    user.save 
    render json: user, status: 200, location: [:api, user] 

else 
    #render json: { errors: "Invalid email or passwords"}, status: 422 
    render json: { errors: "Invalid email or passwords"}, status: 422 

end 

Endeuser.valid_password von devise gem funktioniert nicht

nicht in der Lage einzuloggen, nachdem Benutzer angemeldet hat, ist es die valid_password scheint? Methode verschlüsselt das Passwort nicht im selben Format wie das verschlüsselte Passwort, das in der Datenbank vom Gerät gespeichert wird, jede Hilfe wäre willkommen.

Antwort

2

Der Code ist zum Erstellen einer Sitzung geeignet. Überprüfen Sie einfach, ob Sie den Benutzer richtig erstellen!

diese Konsole in Ihren Schienen Sie

User.create({email:"[email protected]",password:"anything"}) 
User.find(type the id of new user).valid_password?("anything") 

Wenn dies wahr Sie kehrt dann richtig den Benutzer nicht zu schaffen. Überprüfen Sie die Methode, mit der Sie den Benutzer erstellen.

+0

danke für die Hilfe :) –