開発中の Web アプリ用の API を構築しています。API 認証/ログインに使用しようとしている次のコードは、承認時に false を返します。
私のAPIユーザーコントローラーには次のものがあります:
def login
if params[:user]
# Find the user by email first
@user = User.where(email: params[:user][:email]).first
if !@user
respond_with nil
else
@auth = @user.authenticate(params[:user][:password])
if @auth
respond_with @user
else
respond_with @auth
end
end
end
end
有効な電子メールとパスワードが提供されている場合でも、常に @auth で応答していますが、これは false です。Mongo データベースからユーザー情報を取得するのに問題はありません。
私は .authenticate が何をするのかはっきりしていないと思います。私が見た railscast.com ビデオによると、ユーザーのパスワード ダイジェストと入力されたパスワードを比較する必要があります。ユーザーに有効なパスワードが提供されている場合、@auth は常に false です。