35

と を使用DeviseしてRails 3います。

username実際にそのユーザーをログインさせずに、ユーザーとパスワードの組み合わせが正しいことを単純に検証する関数を呼び出したいと考えています。Deviseでこのようなことを達成できる方法はありますか:

User.authenticate(params[:username], params[:password])
4

4 に答える 4

73

データベースからユーザーを取得します。

user = User.find_by_email(params[:email])

次に、次の方法でパスワードを確認できます。

user.valid_password?(params[:password])
于 2011-06-05T18:44:40.407 に答える
4

またはワンライナーを使用して:

User.find_by_email(params[:email]).try(:valid_password?, params[:password])

返すtrueまたはnil

于 2015-01-27T10:15:45.400 に答える
-8

まあ、Devise は自動的にそれを行います: ユーザーがログイン情報を送信すると、それがチェックされます。

さらに制御したい場合は、次の 2 つの選択肢があります。

1-そのチェックを行う場所を見つけるDeviseソースを見てください

2- 独自のログイン システムを作成します (考えられるほど難しくはありません)。

于 2010-07-17T10:43:01.880 に答える