0

どのように機能するかを理解しようとして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
4

1 に答える 1