2011-10-27 19 views
6

Tek bir kullanıcı (admin) oluşturmak istiyorum ve konsol kullanmak istiyorum (kullanıcı kayıt modeli olmadan). RailsCasts'ten çözüm kullanıyorum (http://railscasts.com/episodes/270-authentication-in-rails-3-1). Ama bir sorunum var: Ben konsolda User.create (...,: password => "pass") yaptığımda, şifrem veritabanında saklı kalmaksızın saklanır ("pass" gibi). Ve verilerimle giriş yapamıyorum.Raylar 3.1. Güvenli şifre ile bir kullanıcı konsolunda oluşturun

Konsoldan nasıl kullanıcı oluşturabilirim? :)

cevap

21

Düz dan Raylar API

Sen karma :password_confirmation => "pass eklemeniz gerekir
# 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 

!

Doğru, has_secure_password numaralı telefonu inceleyerek edinmek için BCrypt::Password.create(unencrypted_password) numaralı telefonu kullanabilirsiniz. Yukarıdakileri yapmak için bcrypt-ruby gem'e ihtiyacınız olacak.

+0

Teşekkürler! BCrypt'i unuttum, şifre onaylamadan da iyi çalışıyor :) –

+0

Awesome, bunu duyduğuma sevindim =) –

İlgili konular