Wie erhalte ich die loginRedirect von mehreren Login Standorten in CakePHP?

StackOverflow https://stackoverflow.com/questions/238358

  •  04-07-2019
  •  | 
  •  

Frage

Ich versuche, die Authentifizierung zum Laufen zu bringen nach meinem Geschmack in einer CakePHP App und läuft in einen Haken.

Ich mag die Benutzeranmeldung entweder über die Homepage oder von einer eigenen Login-Seite lassen. Ich verwende die Auth Komponente Login zu verwalten und jetzt das Login selbst funktioniert. Ich reiche das Formular auf der Homepage / Users / Login und loggt sie in und Sitzung erstellen. Das Problem ist, es dann leitet den Benutzer zurück auf die Startseite. Ich würde eher umleiten sie an dem Ort in loginRedirect angegeben.

Wenn ich von / Benutzer / login anmelden direkt tut es sich auf loginRedirect. Ich denke, das Problem etwas mit der Veröffentlichung der Form von einer Seite zu einer anderen Seite statt auf sich selbst, Auth automatisch zu tun, denkt, dass Sie zurück zur vorherigen Seite gehen.

Alle Gedanken?

War es hilfreich?

Lösung

in dem AppController

public function beforeFilter( )
{
    $this->Auth->autoRedirect   =   false;
}

in Userscontroller

public function login( )
{
    if( $this->Auth->user( ) )
    {
        $this->redirect( array(
            'controller'    =>  'users' ,
            'action'    =>  'index' ,
        ));
    }
}

Auch wenn Sie nicht bereits haben, sollten Sie das Formular in ein Element bewegen, so dass Sie absolut sicher machen, dass das Login-Formular zwischen den 2 Login Ansichten identisch ist.

Andere Tipps

Ja Auth hat eine Funktion, wo es Sie auf die Seite umgeleitet werden Sie vor der Anmeldung für den Zugriff versucht. Wenn die loging Redirect Einstellung nicht funktioniert, können Sie versuchen, die loginRedirect auf false gesetzt und ein Handbuch ($ this- tun > umleiten ([..]) in den Login-Aktion :: Userscontroller.

Sie können entweder ausschalten $ autoRedirect indem sie sie zu falschen und Umgang mit der Umleitung von selbst einstellen. Das Problem mit der Auth Komponente ist, dass es zu viel Automagic ist, die Sie nicht wirklich steuern, oder nur durch Hacks.

Eine Lösung für das Problem des Session.Auth.redirect Schlüssel zu löschen, so dass die Auth Komponente immer die loginRedirect URL $ verwenden:

$this->Session->del('Auth.redirect');
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top