Я пытался установить автоматическое включение для каждого Cookie, но не могу удалить Cookie с помощью функции, показанной в CakePHP Books .
У меня есть функция входа в систему, которая проверяет «постоянство», то есть флажок «Запомнить меня».Если флажок установлен, создайте Cookie, сгенерируйте ключ, назначьте его пользователю и отправьте с ответом:
UsersController :: login ()
if ($this->request->getData('persistence')) {
$cookie = $this->Users->createLoginCookie($user, '+1 Month');
$this->response = $this->response->withCookie($cookie
);
}
return $this->redirect($this->Auth->redirectUrl());
UsersTable :: createLoginCookie ();
public function createLoginCookie($user, $expiry){
$key = Text::uuid();
$user = $this->findByEmail($user['email'])->first();
$user->persistence_key = $key;
$this->save($user);
$cookie = new Cookie(
'persistence_key', $key,
new DateTime($expiry),
'',
'',
false,
false
);
return $cookie;
}
И я хочу, чтобы Cookie был удален, если пользователь выходит из системы вручную:
UsersController:: logout ()
if ($cookie = $this->request->getCookie('persistence_key')) {
$this->response = $this->response->withExpiredCookie($cookie);
}
$this->Flash->success('You have been logged out.');
return $this->redirect($this->Auth->logout());
К сожалению, Cookie не будет удален.
Есть идеи?