と を使用Devise
してRails 3
います。
username
実際にそのユーザーをログインさせずに、ユーザーとパスワードの組み合わせが正しいことを単純に検証する関数を呼び出したいと考えています。Deviseでこのようなことを達成できる方法はありますか:
User.authenticate(params[:username], params[:password])
と を使用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 つの選択肢があります。
1-そのチェックを行う場所を見つけるDeviseソースを見てください
2- 独自のログイン システムを作成します (考えられるほど難しくはありません)。