ユーザーデータベースを 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
、パスワードを工夫する必要があると思います。これを修正する方法は?