Ruby敲宝石与设计用户模型集成

时间:2016-05-17 16:37:05

标签: ruby-on-rails curl devise jwt

我的目标是使用现有的设计用户模型实现knock jwt实现。 我遵循了来自knock github项目的README.md指令:
https://github.com/nsarno/knock

当我使用curl,jwt身份验证请求发送给现有用户时:

curl -X POST -H "Content-Type: application/json" http://127.0.0.1:3000/knock/auth_token --data ' {"auth": {"email": "user@example.com", "password": "password"}} ' —verbose

我遇到了以下异常:

ArgumentError - wrong number of arguments (given 0, expected 1): devise (3.4.1) lib/devise/models/database_authenticatable.rb:147:in password_digest' activemodel (4.2.5.2) lib/active_model/secure_password.rb:103:in authenticate'

这可能是什么问题?

1 个答案:

答案 0 :(得分:1)

调查以下链接后:

http://api.rubyonrails.org/classes/ActiveModel/SecurePassword/ClassMethods.html#method-i-has_secure_password

这是重要的信息:

  

添加用于设置和验证BCrypt密码的方法。此机制要求您具有password_digest属性。

由于设计用于用户模型方法:

encrypted_password

您需要在用户活动模型中创建以下方法:

def password_digest
    self.encrypted_password
end