Devise
とRails 3
を使用しています。
ユーザーに実際にログインせずに、ユーザーのusername
とパスワードの組み合わせが正しいことを確認するだけの関数を呼び出したいと思います。 Deviseでこのようなことを達成できる方法はありますか?
User.authenticate(params[:username], params[:password])
データベースからユーザーを取得します。
user = User.find_by_email(params[:email])
次に、次の方法でパスワードを確認できます。
user.valid_password?(params[:password])
またはワンライナーを使用する:
User.find_by_email(params[:email]).try(:valid_password?, params[:password])
true
またはnil
を返します
Deviseには2つの 組み込みメソッド があり、これを正確に実行できます。
user = User.find_for_authentication(username: params[:username])
user.valid_password?(params[:password])