2017-04-13 2 views
0

ログインに問題があります。新しいユーザー登録が動作し、パスワードは暗号化されていますがログインできません。私のログインアクションはUsersAccesプラグインにあり、これは問題だと思います。どうしましたか? SRC /のAppControllerでCakePHP 3.4.3プラグインでログが機能しない

コンフィグ認証:

$this->loadComponent('Auth', [ 
     'loginAction' => [ 
      'controller' => 'Users', 
      'action' => 'login', 
      'plugin' => 'UsersAcces' 
     ], 
     'loginRedirect' => [ 
      'plugin' => 'UsersAcces', 
      'controller' => 'Users', 
      'action' => 'index' 
     ], 
     'logoutRedirect' => [ 
      'controller' => 'Users', 
      'action' => 'login', 
      'plugin' => 'UsersAcces' 
     ], 
     'authError' => 'Brak dostępu!', 
     'authenticate' => [ 
      'Form' => [ 
       'fields' => ['username' => 'username','password'=>'password'], 
       'userModel'=>'UsersAcces.Users', 
       'relatedModel' => ['UsersAcces.Roles', 'UsersAcces.Addresses', 'UsersAcces.Emails', 'UsersAcces.Permissions', 'UsersAcces.Telephones'],//'UsersAcces.Roles', 
       'finder' => 'auth' 
      ] 
     ], 
     'storage' => 'Session', 
     'autoRedirect' => false 
    ]); 

アクションログインIプラグイン/ UsersAcces/SRC /コントローラー/ユーザー:プラグイン/ UsersAcces/SRC /モデル/表で

public function login(){ 
    $this->viewBuilder()->setLayout("login"); 


    if ($this->request->is('post')) { 
     $user = $this->Auth->identify(); 
     if ($user) { 
      return $this->redirect($this->Auth->redirectUrl()); 
     }else{ 
      $this->Flash->error(__('Niewłaściwy login lub hasło. Spróbuj ponownie.')); 
     } 
    } 
    //$user = $this->Users->newEntity(); 
    $this->set(compact("user")); 

} 

機能findAuth/UsersTable:プラグイン/ UsersAcces/SRC /モデル/エンティティ/ユーザで

public function findAuth(\Cake\ORM\Query $query, array $options) 
{ 
    $query 
     ->select() 
     ->where(['Users._delete' => 0]); 
    return $query; 
} 

機能のsetPassword:

protected function _setPassword($password) 
{ 
    if (strlen($password) > 0) { 
     return (new DefaultPasswordHasher)->hash($password); 
    } 
} 

助けてください。

あなたが好き、あなたのAuthコンポーネントの初期化のparamsの「フォーム」キーの下にパスワード調理人を追加する必要が

答えて

1

!私は "plugins/UsersAcces/src/Controller/Users"というファイルに行を追加しませんでした:

$this->Auth->setUser($user); 
0

:私は解決策を見つけた

'authenticate' => array( 'Form' => array( 'passwordHasher' => 'Default' ) ),

+0

残念ながらこれは動作しません... – wojtek6000

関連する問題