3

ユーザーデータベースを PHP から Rails に移行しています。私はすでにDevise Gemをインストールしており、現在はうまく機能しています。また、既存のユーザーのパスワードを Rails に移行する方法のヒントを見つけましたencrypted_password。Devise が保持するのと同じフィールドに古いパスワードを追加しました。そのため、devise が認証に失敗した場合は、古いパスワードを確認します。

# user.rb      
def valid_password?(password)
  return false if encrypted_password.blank?
  require 'digest/sha1'
  password_salt = 'my_php_framework_salt'
  Devise.secure_compare(Digest::SHA1.hexdigest(password_salt+password), self.encrypted_password)
end

古いパスワードでログインできますが、新しいユーザーの元の Devise パスワードでは機能しません。valid_password?この方法はreturn true、パスワードを工夫する必要があると思います。これを修正する方法は?

4

1 に答える 1