В моем контроллере пользователей я пытаюсь включить функцию запомнить меня при входе в систему.Это кажется довольно простым - установить cookie-файл для поиска cookie-файла, когда пользователь заходит на страницу входа в систему, и, если он существует, войдите в него. Однако Cake не сохраняет cookie-файл, по крайней мере, не так, как я вижу, и когда я снова посещаю страницу, яя не авторизован автоматически.
Чтобы проверить это, у меня есть следующий код:
$cookie=$this->read('Auth.User');
if(empty($cookie) and !empty($this->data)){
if($this->Auth->login()) {
if(!empty($this->data['User']['remember_me'])){
$cookie = array('id' => $this->Auth->user('id'),
);
$expires=strtotime($this->appConfigurations['remember_me'],time());
$this->Cookie->write('Auth.User', $cookie, false, $this->appConfigurations['remember_me']);
}
}
}
Теперь, сразу после того, как я установил этот файл cookie, я могу поместить $ this-> cookie-> read ('Auth.User');и получить значение этого файла cookie, однако он не отображается в списке файлов cookie браузеров (Chrome, FireFox).
Если я использую обычные файлы cookie PHP, через setcookie () я могу просмотреть файл cookie, но, разумеется,чтение Cake Cookie не работает с этими куки.Что я должен искать, чтобы решить эту проблему?
Я нашел обходной путь, но мне это не нравится, потому что он просто обходит рамки.Я узнал, как торт создает куки, и для этих куки я использую алгоритм создания куки тортов в своем коде и использую setcookie () для настройки.Просто для тех, кто хочет или должен использовать обходной путь:
$cookieValue=$this->Auth->user('id');
setcookie('CakeCookie[Auth][User]',$cookieValue,$expires,'/');
Теперь вы можете использовать компонент cookie cakes для считывания значения.Есть еще что-то, что вы должны изменить, если ваше значение является массивом, прочитайте код cookie.php, чтобы увидеть, что вам нужно сделать.Также я пропустил шифрование, которое тоже можно найти в файле cookie.php и в настройках ваших приложений.Для этой проблемы мне не нужны значения массива, так как я храню только идентификатор пользователя.и я установил шифрование в отличие от описанного выше.
Я все же хотел бы знать, почему компонент не работает.