2017-02-24 21 views
1

私が作成しているアプリケーションのAPIを開発しています。このアプリケーションはこのAPIからすべての情報を取得します(最初にユーザーを認証してから情報を取得します)Cakephp REST APIを使ってユーザーを特定します

今、ユーザーにユーザー名とパスワードを送信させようとしています。それが "ok"か "not"かどうかを返します。非常に簡単に始めるだけです。私はこれに関係するすべてのセキュリティを知っている、ただこれを得る必要がある。

既にAPIサイドでユーザー名とパスワードを送信できました(データが正しく保存されていることを100%確信しています)。私は

$this->Auth->identify($this->request->data);

呼び出すときしかし、それは常に(すでにパラメータとし、結果は同じである、なしにしようとした)私にはfalseを返します。

私はHttpRequester、firefoxのプラグインを使用して情報を送信しています。

$ this-> request-> dataのデバッグを行って、情報が正しいかどうかを確認しました。パスワードがハッシュされているため、データベースで検索できません。

 $this->loadComponent('Auth', [ 
     'authenticate' => [ 
      'Form' => [ 
       'fields' => [ 
        'username' => 'email', 
        'password' => 'password' 
       ] 
      ], 
     ] 
    ]); 

    if($this->request->is('POST')){ 
     //debug($this->request->data); 
     $user = $this->Auth->identify($this->request->data); 
    } 

ユーザー表:

データベースのパスワードフィールドは、(すでに255で試してみました、また無作業)300の長さの助け

EDITため

おかげでvarchar型であります

protected $_accessible = [ 
    '*' => true, 
]; 

/** 
* Hash password 
* 
*/ 
protected function _setPassword($password) 
{ 
    return (new DefaultPasswordHasher)->hash($password); 
} 

protected function _getFullName() 
{ 
    if(isset($this->_properties['full_name'])){ 
     return ucwords(mb_strtolower($this->_properties['full_name'])); 
    } 
} 

ps:次のようにしてみてください。 m個のポストでなく、運)

$this->request->data['username'] = "xxxx"; 
$this->request->data['password'] = "zzzz"; 
+0

をチェックする必要があり、ここで

'Form' => [ 'fields' => [ 'username' => 'email', //email is your database field 'password' => 'password' // password is your database field name ] ], 

ですカスタムフィールド名も 'username'ではなく' email'です。 'username'キーはオーセンティケータが設定されたフィールド/カラム名にアクセスするためのオプション名です。 – ndm

+0

うん、それは問題だった:)ありがとう! – Cafn

答えて

3

問題は、あなたのコードが

 'Form' => [ 
       'fields' => [ 
        'username' => 'username', 
        'password' => 'password' 
       ] 
      ], 

詳細は、使用しなければならない要求データにConfiguring Authentication Handlers

+0

こんにちは@ tarikul05。答えをありがとう!私のデータベースでは、私が使っている2つのフィールドはメールとパスワードです。 – Cafn

+0

'$ this-> request-> data ['username']'は '$ this-> request-> data ['email']' – tarikul05

+0

それは@ tarikul05でした。助けてくれてありがとう :) – Cafn

関連する問題