CakePHP einfache Authentifizierung tutorial funktioniert nicht
Ich bin neu bei CakePHP. Ich versuche der Kuchen Kochbuch tutorial einfache Authentifizierung mit CakePHP-2.4.1.
Ich bin immer "Ungültiger Benutzername oder ungültiges Passwort, versuchen Sie es erneut" obwohl ich tippte die korrekten Benutzernamen und Passwort.
public function login() {
if ($this->request->is('post')) {
if ($this->Auth->login()) {
return $this->redirect($this->Auth->redirect());
}
$this->Session->setFlash(__('Invalid username or password, try again'));
}
}
Laut die AuthComponent-API, wenn der parameter Auth->login()
ist leer oder nicht angegeben, wird die Anforderung zum identifizieren eines Benutzers.
Die debugging-Ausgabe zeigt
SELECT `User`.`id`, `User`.`username`, `User`.`password`, `User`.`role`, `User`.`created`, `User`.`modified`
FROM `cake_dvdcatalog`.`users` AS `User` WHERE `User`.`username` = 'admin' LIMIT 1
Hier ist meine User-model:
//app/Model/User.php
App::uses('AuthComponent', 'Controller/Component');
class User extends AppModel {
public $validate = array(
'username' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A username is required'
)
),
'password' => array(
'required' => array(
'rule' => array('notEmpty'),
'message' => 'A password is required'
)
),
'role' => array(
'valid' => array(
'rule' => array('inList', array('admin', 'author')),
'message' => 'Please enter a valid role',
'allowEmpty' => false
)
)
);
public function beforeSave($options = array()) {
if (isset($this->data[$this->alias]['password'])) {
$this->data[$this->alias]['password'] = AuthComponent::password($this->data[$this->alias]['password']);
}
return true;
}
}
- Kannst du deinen code für das user-model?
- Sicher. Ich habe bearbeitet Sie meine Frage.
- Versuchen, zu Debuggen $this->Auth->login () - Methode. Ein verschlüsseltes Passwort sollte das gleiche wie in der Datenbank.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie überprüfen Sie Ihre Verschlüsselten Passwort,
Cakephp Standardmäßig SHA1, So ist es beter so erstellen Sie einen Benutzer mit Cakephp mit SHA1 Passwort, Hinzufügen beforesave Methode im model user zu verschlüsseln-Passwort
Den auth-Komponente geht in den controller, nicht das Modell. Versuchen Sie, diese aus dem Modell:
App::uses('AuthComponent', 'Controller/Component');
Und hinzufügen, um die der AppController. Auch in den app-controller:
public $components = array('Auth');
Müssen Sie möglicherweise eine zusätzliche Konfiguration, wenn Sie möchten, verwenden Sie nicht-Standard-Einstellungen.
$components = array('Auth');
ist bereits inAppController
.Ich denke, Sie vermisst habe, etwas, achten Sie bitte darauf folgte das gleiche tutorial für CakePHP 2.x http://book.cakephp.org/2.0/en/tutorials-and-examples/blog-auth-example/auth.html.
Bitte erstellen Sie Benutzer auf
http://localhost/application_name/users/add
nach aller Konfiguration und versuchen Sie es mit einem solchen user. Es ist für mich arbeiten.Überprüfen Sie, ob das folgende Element in der $components-array innerhalb des 'AppController.php' Datei: