2011-10-27 29 views
6

Tôi muốn tạo một người dùng (quản trị viên) và tôi muốn sử dụng bảng điều khiển (không có mô hình đăng ký người dùng). Tôi sử dụng giải pháp từ RailsCasts (http://railscasts.com/episodes/270-authentication-in-rails-3-1). Nhưng tôi có một vấn đề: khi tôi sử dụng User.create (...,: password => "pass") trong giao diện điều khiển mật khẩu của tôi được lưu trữ trong cơ sở dữ liệu mà không cần ghi (như "pass"). Và tôi không thể đăng nhập bằng dữ liệu của mình.Đường ray 3.1. Tạo một người dùng trong giao diện điều khiển bằng mật khẩu an toàn

Tôi làm cách nào để tạo người dùng từ bảng điều khiển? :)

Trả lời

21

Straight từ Rails API

# 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 

Bạn cần phải bao gồm :password_confirmation => "pass trong băm của bạn!

Phải, vì vậy, hãy xem has_secure_password bạn muốn thực hiện BCrypt::Password.create(unencrypted_password) để tải xuống. Bạn sẽ cần đá quý bcrypt-ruby để thực hiện việc trên.

+0

Cảm ơn! Tôi quên về BCrypt, nó hoạt động tốt mà không cần xác nhận mật khẩu quá :) –

+0

Tuyệt vời, vui khi nghe nó =) –

Các vấn đề liên quan