2016-06-30 15 views
2

Ich mache ein Projekt in CakePhp 3 und ich kann nicht einloggen. $this->Auth->indetify(); immer wieder falseCakePHP 3.0 Login zurückgeben jedes Mal falsch

ähnliches Problem des anderen Anzeigen, alle raten meine table.password in Datenbank varchar(255) zu machen, aber das hilft nicht.

Datenbanktabelle:

CREATE TABLE users (
id BIGINT PRIMARY KEY AUTO_INCREMENT, 
person_id BIGINT NOT NULL, 
username VARCHAR(50), 
password VARCHAR(255), 
role VARCHAR(20), 
active boolean DEFAULT TRUE NOT NULL 

); 

Funktionen anmelden und

public function login() { 
if ($this->request->is('post')) { 
    $user = $this->Auth->identify(); 
    if ($user) { 
     $this->Auth->setUser($user); 

     return $this->redirect($this->Auth->redirectUrl()); 
    } 
    $this->Flash->error(__('User and Password incorrect')); 
} 
public function logout() { 
    return $this->redirect($this->Auth->logout()); 
} 

public function beforeFilter(Event $event) 
{ 
    parent::beforeFilter($event); 
    $this->Auth->allow(['index', 'logout', 'add','login']); 
} 

AppController in UsersControllers abzumelden:

public function initialize() 
{ 
    parent::initialize(); 

    $this->loadComponent('RequestHandler'); 
    $this->loadComponent('Flash'); 

    $this->loadComponent('Auth',[ 
    'loginRedirect' => [ 
    'controller' => 'Users', 
    'action' => 'index' 
    ], 
    'logoutRedirect' => [ 
    'controller' => 'Users', 
    'action' => 'login' 
    ]   
]); 

und meine /Users/login.ctp

<div class="users form"> 
<?= $this->Flash->render('auth') ?> 
<?= $this->Form->create() ?> 
    <fieldset> 
     <legend><?= __('User and Password') ?></legend> 
     <?= $this->Form->input('username') ?> 
     <?= $this->Form->input('password') ?> 
    </fieldset> 
<?= $this->Form->button(__('Login')); ?> 
<?= $this->Form->end() ?> 
</div> 

folgte ich ein Tutorial und es hat mich anscheinend war dies zu arbeiten = \

+0

in Ihrem Debug-Modus und überprüfen Sie, welchen Fehler es zeigt? –

+0

Das Problem war im Passwort. CakePHP versuchte eine Passwortverschlüsselung zu lesen, aber meine Datenbank enthielt bereits Daten. Danke =) –

Antwort

0

kann es dumm klingen, aber das Kennwort in der Datenbank gehasht oder haben Sie schrieben es in manuell im Klartext? Wenn nicht, stellen Sie sicher, dass es ist.

+0

das ist, das Problem war im Passwort. CakePHP versuchte eine Passwortverschlüsselung zu lesen, aber meine Datenbank enthielt bereits Daten. Danke =) –

0

das Problem war im Passwort. CakePHP versuchte eine Passwortverschlüsselung zu lesen, aber meine Datenbank enthielt bereits Daten. Danke =)