2012-02-15 17 views
6

Mam trudności w wykonaniu następujących czynności: Zmienianie daty ważności pliku cookie sesji użytkownika na podstawie typu użytkownika.Zmodyfikuj czas ważności pliku cookie sesji i limit czasu sesji sesji CakePHP

Mam aplikację internetową CakePHP, w której utworzyłem mój składnik uwierzytelniający (zamiast CakehP Auth) przy użyciu sesji CakePHP. Skonfigurowałem CakePHP do obsługi sesji przy użyciu bazy danych.

Oto odpowiednie ustawienia konfiguracyjne, które mam w config.php:

Configure::write('Session.save', 'database'); 
Configure::write('Session.timeout', '36'); 
Configure::write('Security.level', 'medium'); 

Jak mogę przedłużyć datę ważności pliku cookie sesji i zaktualizować wartość w „wygasa” kolumnę w "sesje" stół?

+0

może to może pomóc: "wysoki" limit czasu sesji w "Session.timeout" x 10; "średni" limit czasu sesji w "Session.timeout" x 100; "niski" limit czasu sesji w "Session.timeout" x 300; –

+1

Może to również pomóc: http://www.dereuromark.de/2012/02/02/more-persistent-sessions-in-cake2-x/ – Costa

Odpowiedz

6

pójść w app/config/core.php

W tym poszukiwaniu plików o, czas czas (w sekundach)

Configure::write('Session.timeout', '120'); 

sesji, domyślnie jest to 120 sekund. Możesz go tutaj edytować zgodnie z wymaganiami. Teraz rzeczywisty czas trwania zależy od czasu oczekiwania,

Configure::write('Security.level', 'medium'); 

if 'high' then Session timeout in 'Session.timeout' x 10, 
if 'medium' then Session timeout in 'Session.timeout' x 100, 
if 'low' Session timeout in 'Session.timeout' x 300 

Więc przez połączenie Session.Timeout i Security.level można uzyskać żądany limit czasu sesji

+8

czy można to skonfigurować w locie? powiedzieć, że niektórzy użytkownicy mają dłuższy czas wygaśnięcia niż inni? – arod

4

Znajdź: app/config/core.php

zmienić tę linię do żądana wartość w minutach:
Configure::write('Session.timeout', '120');

(Od CakePHP 2.3.0 Security.level nie jest już używana 01. Changelog: http://cakephp.org/changelogs/2.3.0)

Powiązane problemy