Проблема тайм-аута сеанса CakePHP - PullRequest
1 голос
/ 13 ноября 2010

У меня проблема с аутентификацией в CakePHP. Что бы я ни пытался, Cake либо скажет мне, что я де-аутентифицировался после каждого запроса, либо я все еще аутентифицируюсь, хотя я и раньше закрывал браузер.

Я объясню в нескольких словах, как работает моя система аутентификации. Пользователь входит в систему с установленным флажком remember me или без него. Если флажок установлен, я создам файл cookie, чтобы пользователь автоматически регистрировался при следующем посещении сайта. По сути, когда пользователь закрывает свой браузер, мне нужно удалить все сеансовые куки-файлы, хранящиеся в браузере. Таким образом, когда пользователь возвращается, он видит страницу входа в систему, если не хочет, чтобы ее запомнили, или автоматически входит в файл cookie remember me, если он решил сохранить его.

Проблема в том, что я играл с Session.timeout и Security.level из core.php, без каких-либо положительных результатов. Если я установлю тайм-аут на 0, Cake будет отключать меня после каждого запроса, и я не смогу просматривать какую-либо страницу. Если я укажу какое-либо другое значение для тайм-аута, пользователь может закрыть браузер, и когда он снова откроет его, он все равно может войти в систему, поскольку сеанс Cake не истек.

В заключение, как я могу автоматически удалить файл cookie сеанса при закрытии браузера?

1 Ответ

3 голосов
/ 13 ноября 2010

Посмотрите на эту статью, может быть, может помочь вам, я использую что-то подобное для других целей.

http://bakery.cakephp.org/articles/admad/2009/09/02/how-to-bend-cakephp-s-session-handling-to-your-needs

см .: ini_set('session.cookie_lifetime', 0);

...