Symfony'de oturum zaman aşımı süresini tespit etmek için nasıl

2 Cevap php

I'm currently working on a project with the PHP framework Symfony. I've configured secured pages, defined 30 minutes for the session timeout and set the page where the user should be redirect if an unauthenticated user tries to access a secured page.

I've remarked that the user is also redirected there if the user tries to access a secured page after the user's session has expired. In this case, I would like to display a message basically saying that "Your session has expired. Please reconnect."

Bunu nasıl elde edebiliriz?

2 Cevap

Her başarılı kimlik çerez ayarlayabilirsiniz. Ardından, oturum boş, ancak çerez mevcut ise, "Oturum süresi doldu" derler.

Hatta çerezleri devre ile çalışacak başka, çirkin yolu: her zaman URL'ye oturum kimliği ekleyin. Bu URL mevcut, ama oturum boşsa Sonra, yine, biz son bir durumdayız.

Çok daha kolay myuser-> TimedOut için kontrol ediyor.

http://trac.symfony-project.org/changeset/1722

Symfony 1.4 bu yöntemi yoktur, ancak bunu oluşturabilirsiniz:

class myUser extends sfBasicSecurityUser
{
   // ...   
   public function getTimedOut() 
   {
       return $this->timedout;
   }
   // ...
}

Nitelik TimedOut doğru doldurulur.

Sonra şablonda değeri için kontrol edin:

<?php if($sf_user->getTimedOut()) : ?>
    <div class="error">Session timeout...</div>
<?php endif ?>