我的目标是使用现有的设计用户模型实现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'
这可能是什么问题?
答案 0 :(得分:1)
调查以下链接后:
这是重要的信息:
添加用于设置和验证BCrypt密码的方法。此机制要求您具有password_digest属性。
由于设计用于用户模型方法:
encrypted_password
您需要在用户活动模型中创建以下方法:
def password_digest
self.encrypted_password
end