0

基本的に質問のとおりです。

州の AuthLogic ドキュメントverify_password_method:

パスワードの検証に使用されるモデル内のメソッドの名前。これはインスタンス メソッドである必要があります。また、生のパスワードと暗号化されたパスワードを受け入れるように準備する必要があります。

これをサポートしたいのは、以前のように平文のパスワードを保存することなく、システムの現在のマスカレード動作を維持できるからです。crypted_passwordただし、データベース内の単純な文字列比較を許可することは、通常の平文パスワードを保存することと同じくらい悪いように思えます。

ここで何か不足していますか、またはAuthLogicで暗号化されたパスワードを受け入れる他の方法はありますか?

参考までに、これは私がメソッドを書くつもりだったvalid_password?方法です:

def valid_password?(password, check_from_database = nil)
  if password == self.crypted_password
    true
  else
    super(password, check_from_database)
  end
end
4

1 に答える 1

0

わかりました、これを行うためのはるかに簡単な方法があることがわかりました (ただし、これは恐ろしく文書化されておらず、これを達成する方法を Google で検索しても見つかりませんでした)。

Authlogic::Session::Base.new(@user, true)

その行により、資格情報を確認せずにセッションを作成できます。ユーザーがすでに自分自身を正しく識別していると想定しているため、これには明らかに注意が必要です-私の使用法では、現在のユーザーが管理者ユーザーであることを確認するためのチェックがあるため、安全です。

于 2013-07-15T06:30:58.780 に答える