どのように機能するかを理解しようとしてhas_secure_password
います。bcrypt-ruby Web サイトには、以下の使用方法の例があります。password
クラスの方法はUser
私を混乱させます。コード@password ||= Password.new(password_hash)
は暗号化されたハッシュを受け取り、暗号化されていないパスワードを返しているようです。暗号化されたハッシュだけからパスワードを回復することはできないはずです。私は何について誤解していますかPassword.new
ユーザーモデル
require 'bcrypt'
class User < ActiveRecord::Base
# users.password_hash in the database is a :string
include BCrypt
def password
@password ||= Password.new(password_hash)
end
def password=(new_password)
@password = Password.create(new_password)
self.password_hash = @password
end
end
アカウントの作成
def create
@user = User.new(params[:user])
@user.password = params[:password]
@user.save!
end
ユーザーの認証
def login
@user = User.find_by_email(params[:email])
if @user.password == params[:password]
give_token
else
redirect_to home_url
end
end