web-dev-qa-db-ja.com

DeviseとRails 3)を使用して、ユーザー名とパスワードが正しいことを簡単に確認するにはどうすればよいですか?

DeviseRails 3を使用しています。

ユーザーに実際にログインせずに、ユーザーのusernameとパスワードの組み合わせが正しいことを確認するだけの関数を呼び出したいと思います。 Deviseでこのようなことを達成できる方法はありますか?

User.authenticate(params[:username], params[:password])
33
Adam Singer

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

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

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

user.valid_password?(params[:password])
63
Steven

またはワンライナーを使用する:

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

trueまたはnilを返します

4
LiAh Sheep

オフィシャルデバイスウェイ

Deviseには2つの 組み込みメソッド があり、これを正確に実行できます。

user = User.find_for_authentication(username: params[:username])
user.valid_password?(params[:password])
0
Sheharyar