как отправить содержимое сеанса в cookie-файл запомнить меня?

Я работаю над запомнить меня печенье в cakephp который держит вас в системе в течение 2 недель.

Это работает нормально, но то, что я передаю, чтобы записать в cookie:

$this->request->data['User']['username']

Всякий раз, когда новый пользователь регистрируется, по умолчанию создается хэшированный идентификатор.

Файл cookie Запомнить меня просто генерирует ключ, который проверяет, является ли он тем же пользователем, и входит в систему на заднем плане. Когда срок действия файла cookie, созданного cakephp, истекает (по умолчанию — четыре часа), вся информация, такая как идентификатор пользователя, адрес и т. Д., Теряется.

Как мне отправить ID для проверки вместо этого?

Как мне сохранить все эти данные (информацию о пользователе) даже через четыре часа? (скажем, около 2 недель)

-1

Решение

Измените свою регистрационную функцию следующим образом

 function login() {
if ($this->Auth->user()) {
if (!empty($this->data['User']['remember_me'])) {
$cookie = array();
$cookie['username'] = $this->data['User']['username'];
$cookie['password'] = $this->data['User']['password'];
$this->Cookie->write('Auth.User', $cookie, true, '+2 weeks');
unset($this->data['User']['remember_me']);
}
$this->redirect($this->Auth->redirect());
}
if (empty($this->data)) {
$cookie = $this->Cookie->read('Auth.User');
if (!is_null($cookie)) {
if ($this->Auth->login($cookie)) {
//  Clear auth message, just in case we use it.
$this->Session->delete('Message.auth');
$this->redirect($this->Auth->redirect());
}
}
}
}
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]