2017-04-14 15 views
1
私はbcryptの(3.1.7)を使用した認証APIを構築しています、と私はエラーを得続ける

についてはbcryptの間違った番号エラー

if user && user.authenticate(create_params[:password]) 

「引数の数が間違って(0を与えられたが、1予想)」をここにエラーが発生したSessionsControllerがあります。

class Api::V1::SessionsController < Api::V1::BaseController 
    def create 
    user = User.find_by(email: create_params[:email]) 
    if user && user.authenticate(create_params[:password]) 
     self.current_user = user 
     render(
     json: Api::V1::SessionSerializer.new(user, root: false).to_json, 
     status: 201 
    ) 
    else 
     return api_error(status: 401) 
    end 
    end 

    private 
    def create_params 
    params.require(:user).permit(:email, :password) 
    end 
end 

そして、これは私が前に同じ問題を持っていたユーザーモデル

class User < ApplicationRecord 
    # email, name, encrypted_password, authentication_token, password_digest, ... 
    devise :database_authenticatable, :registerable, 
     :recoverable, :rememberable, :trackable, :validatable 

    before_create :generate_authentication_token 

    has_secure_password 

    def generate_authentication_token 
    loop do 
     self.authentication_token = SecureRandom.base64(64) 
     break unless User.find_by(authentication_token: authentication_token) 
    end 
    end 

    ... 

end 
+0

エラースタック情報を表示することがあります –

答えて

1

です。その時、私はdeviseとbcryptを同時に使いました。実際には、これらの2つの宝石を同時に使用する必要はありません。あなたは1つだけを使用する必要があります - deviseまたはbcrypt。

+0

最良の選択は何ですか?デビスかbcrypt? –

+0

私はDeviseに精通しており、それを好む。 –

関連する問題