CakePHP Auth Component Redirect Problem
Ich habe Probleme damit, dass die Auth-Komponente die gewünschten Weiterleitungen in einer CakePHP 1.2.6-App ausführt.
Ich habe ein Anmeldeformular, das auf allen Seiten angezeigt wird, und ich möchte, dass der Benutzer auf der Seite bleibt, auf der er sich anmeldet. Wenn er beispielsweise das Profil eines anderen Benutzers anzeigt, möchte ich ihn nach dem Anmelden dort belassen und nicht an das @ weiterleite$this->Auth->loginRedirect
Aktion. Eine andere Sache an meiner App ist, dass ich keine "nur authentifizierten Zugriffs" -Seiten habe. Jede Seite ist für jeden zugänglich. Wenn Sie jedoch angemeldet sind, erhalten Sie zusätzliche Funktionen.
Was ich vom Lesen des @ verstanden haDokumentatio ist, dass ich @ einstellen muautoRedirect
auf false setzen, um den Code in der auszuführenden login () -Funktion abzurufen:
class UsersController extends AppController {
var $name = 'Users';
var $helpers = array('Html', 'Form','Text');
function beforeFilter() {
$this->Auth->autoRedirect = false;
}
function login() {
$this->redirect($this->referer());
}
function logout() {
$this->redirect($this->Auth->logout());
}
/* [...] */
}
Dies unterbricht derzeit meine Authentifizierung. Mir ist aufgefallen (aus den Logs), dass wenn ich die Umleitung in der Login-Funktion belasse und @ setautoRedirect
auf false, das Passwortfeld in$this->data
in demlogin()
Funktion erscheint als leer.
Below, ich habe den Inhalt von AppController gepostet, der sich auf die Auth-Komponente bezieht:
public function beforeFilter() {
$this->Auth->fields = array(
'username' => 'email',
'password' => 'password'
);
$this->Auth->loginAction = array('controller' => 'users', 'action' => 'login');
$this->Auth->loginRedirect = array('controller' => 'usercars', 'action' => 'homepage');
$this->allowAccess();
// build wishlist if the user is logged in
if ($currentUser = $this->Auth->user()) {
$wishlists = $this->buildWishlist($currentUser);
$this->set('wishlists', $wishlists);
}
}
private function allowAccess() {
if(in_array($this->name, /* all my controller names */)) {
$this->Auth->allow('*');
}
}
Ich kann nicht verstehen, was ich falsch mache.