2016-05-17 21 views
3

私の目標は、既存のdeviseユーザーモデルを使ってknock jwt実装を実装することです。私が送信した場合、既存のユーザーのために使用してカール、JWTの認証要求が
https://github.com/nsarno/knockruby​​ knock gemとdeviseユーザーモデルの統合

curl -X POST -H "Content-Type: application/json" http://127.0.0.1:3000/knock/auth_token --data ' {"auth": {"email": "[email protected]", "password": "password"}} ' —verbose

私は例外次しまっ は私がノックgithubのプロジェクトからREADME.mdの指示に従っ

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

次のリンクを調査した後:

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

これは、情報の重要な部分である:

Adds methods to set and authenticate against a BCrypt password. This mechanism requires you to have a password_digest attribute.

工夫がユーザーモデル法で使用するため:

encrypted_password

< `クラスのユーザーApplicationRecord工夫::私は私の「アプリ/モデル/ user.rb」ファイルでこれを置く場合

def password_digest 
    self.encrypted_password 
end 
+2

:あなたは、ユーザーにアクティブなモデルは、メソッド、次の作成必要database_authenticatable、:登録可能(など) def password_digest self.encrypted_pa​​ssword end end'私はUser.createを使うとエラーが出ます!例えば種子の方法: 'レールが中止! ArgumentError:引数の数が間違っています(指定された1、期待される0)/app/models/user.rb:7:in password_digest ' /bundle/bundler/gems/devise-9c0dccfec1b4/lib/devise/models/database_authenticatable.rb:40 :in 'password =' 'これを修正するには?私は実際に考案して宝石をノックすることはできますか? –

関連する問題