我建立使用bcrypt(3.1.7)认证的API,我不断收到一个错误“的参数错误数(0给出,预计1)”为bcrypt错误的参数数目错误
if user && user.authenticate(create_params[:password])
这里是发生错误的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
可能会显示错误堆栈信息 –