Empfehlungen: Erweiterte Suche

User werden reglmäßig sporadisch ausgeloggt

Klassen zur Datenverarbeitung in den Controllern (DRY)

User werden reglmäßig sporadisch ausgeloggt

Beitragvon anselmoso » Mo 26. Okt 2009, 10:02

Hallo zusammen,

ich habe bei meiner CakePHP-Plattform (1.2.5, nutze Auth-Componente zum Login / Logout) das Problem, dass meine User sporadisch ausgeloggt werden ohne nachvollziehbaren Grund. Am Session-Timeout liegt es nicht - es passiert wie gesagt völlig sporadisch.
Das Problem habe ich sowohl bei meiner lokalen Installation mit XAMPP als auch auf meinem Webserver (gehostet bei Eleven2). Mal wird man sporadisch nach 10 Minuten ausgeloggt wenn man wieder eine Seite aufrufen will, mal kann man 1 1/2 Stunden sich durchklicken ohne ausgeloggt zu werden.

Das einzige, was bei jedem Seitenaufruf aufgerufen wird ist ein Element, das ständig einen "requestAction" Aufruf ausführt in meinem UsersController. Nämlich die Methode "userIsLoggedIn" wo dann per Auth-Componente geschaut wird, ob der momentane User auch eingeloggt ist. Also im Element steht dann:

Code: Alles auswählen
$loggedIn = $this->requestAction('users/loggedIn');


Und im UsersController:

Code: Alles auswählen
function loggedIn()
    {
        if ($this->Auth->user('username') != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }


Von meinem Webhoster ist die session_gc_maxlifetime auf 1440 gesetzt. Aber auch wenn ich länger eingeloggt und inaktiv bin, macht das nix - an der liegts also nicht nach meinen Beobachtungen. In meiner core.php habe ich folgende Einstellungen

Configure::write('Cache.disable', true);
Configure::write('Session.save', 'cake');
Configure::write('Session.cookie', 'CAKEPHP');
Configure::write('Session.timeout', '7200');
Configure::write('Session.start', true);
Configure::write('Session.checkAgent', true);
Configure::write('Security.level', 'medium');


->Liegt das am requestAction Aufruf?
anselmoso
 
Beiträge: 11
Registriert: Mo 25. Mai 2009, 12:21

Re: User werden reglmäßig sporadisch ausgeloggt

Beitragvon dth33 » Mo 26. Okt 2009, 11:19

Hi,

um zu überprüfen, ob ein User eingeloggt ist oder nicht, kannst Du mal folgendes versuchen:

http://www.cakephp-forum.com/controller/acl-auf-user-und-group-des-eingeloggten-users-zugreifen-t393.html

Grüße
dth33
 
Beiträge: 33
Registriert: Do 22. Jan 2009, 15:38
Wohnort: Am schönen Niederrhein
CakePHP-Version: 1.3
OS: Win32

Re: User werden reglmäßig sporadisch ausgeloggt

Beitragvon euromark » Mo 26. Okt 2009, 11:22

das problem hatte ich auch, bis ich auf "cake" interne sessions gegangen bin
(also im tmp/sessions ordner)

liegt wohl am automatischen garbige-collector im default session path
euromark
 
Beiträge: 643
Registriert: Fr 27. Jun 2008, 22:17
Wohnort: München
CakePHP-Version: 2.x
OS: Windows

Re: User werden reglmäßig sporadisch ausgeloggt

Beitragvon anselmoso » Mo 26. Okt 2009, 11:45

euromark hat geschrieben:das problem hatte ich auch, bis ich auf "cake" interne sessions gegangen bin
(also im tmp/sessions ordner)

liegt wohl am automatischen garbige-collector im default session path


Das hab ich ja schon gemacht, siehe meine core.php Einstellungen oben.

Danke auch dth für den Tip, das werd ich gleich mal in den AppController einbauen und testen, ob das was ändert.
anselmoso
 
Beiträge: 11
Registriert: Mo 25. Mai 2009, 12:21

Re: User werden reglmäßig sporadisch ausgeloggt

Beitragvon Mathias » Mo 26. Okt 2009, 17:48

Es kann sein, dass ich mich ganz stark irre, aber man braucht doch unter der Benutzung von Auth keinen Login-Status prüfen. Das macht doch Auth schon.
Mein Setup sieht immer so aus, dass ich im beforeFilter() des jeweiligen Controller Funktionen erlaube. Die, die nicht erlaubt sind, benötigen die Authenfizierung mit Auth.

http://book.cakephp.org/view/247/AuthCo ... #allow-382
cheers
Benutzeravatar
Mathias
 
Beiträge: 225
Registriert: Mi 4. Jun 2008, 22:30
Wohnort: Berlin
CakePHP-Version: 1.3.x
OS: OS X 10.6.x

Re: User werden reglmäßig sporadisch ausgeloggt

Beitragvon anselmoso » Di 27. Okt 2009, 10:56

Grüß Gott Mathias,

;) klar braucht man in einem Controller nicht immer den Auth-Status prüfen, hier geht es aber um ein Element. Also z.B. ein Benutzermenü, das

- nur dargestellt wird wenn der User eingeloggt ist
- zusätzliche Menüeinträge nur dann zeigt, wenn der User die 'role' 'admin' hat

Und da ein Element meines Wissens keinen eigenen Controller hat, ist das nicht automatisch einfach so über Auth-Componente und beforeFilter zu machen.

Ich habe es jetzt so gemacht wie von dth geraten und bislang sieht das bislang sehr gut aus. Die Ausloggereien sind spürbar weniger geworden.
anselmoso
 
Beiträge: 11
Registriert: Mo 25. Mai 2009, 12:21


Zurück zu Components

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 0 Gäste

cron