CakePhp запомни мне вариант

Я пытаюсь включить опцию «запомнить меня» в моем приложении cakePhp. Я использовал это CakePHP запомни меня с Auth Ответ, чтобы реализовать это.
Так выглядит мой UsersController:

if ( (int)$this->request->data['User']['remember_me'] == 1 ) {
// remove "remember me checkbox"unset($this->request->data['User']['remember_me']);

$this->request->data['User']['pw2'] = $this->request->data['User']['password'];

// write the cookie
$this->Cookie->write('remember_me_cookie', $this->request->data['User'], true, '2 weeks');
}

Это логика из модели:

$this->Cookie->httpOnly = true;

if (!$this->Auth->loggedIn() && $this->Cookie->read('remember_me_cookie')) {
$cookie = $this->Cookie->read('remember_me_cookie');
$user = $this->User->find('first', array(
'conditions' => array(
'User.username' => $cookie['username'],
'User.password' => $cookie['password'],
)
));}

Это мнение (я знаю, что это не идеально)

echo $this->Form->checkbox('remember_me').'Remember me';

Но помни, что функция не работает. Что может быть не так?

0

Решение

Используйте это для входа и запомнить функцию

 if ($this->request->is('post')) {
if ($this->Auth->login()) {
if (isset($this->request->data['User']['remember_me']) && $this->request->data['User']['remember_me'] == 1) {
$this->Cookie->delete('Auth');
$cookie = array();
$cookie['email'] = $this->request->data['User']['email'];
$cookie['password'] = $this->request->data['User']['password'];
$this->Cookie->write('Auth.User', $cookie, true, '+2 weeks');
unset($this->request->data['User']['remember_me']);
} else {
$this->Cookie->delete('Auth');
}
$this->redirect($this->Auth->redirect());
} else {
$this->Session->setFlash(__('Invalid email or password.'), 'default', array('class' => 'error'));
}
}
$cookie = $this->Cookie->read('Auth');
if (isset($cookie) && !empty($cookie)) {
$this->request->data['User']['email'] = $cookie['User']['email'];
$this->request->data['User']['password'] = $cookie['User']['password'];
$this->request->data['User']['remember_me'] = 1;
}
-1

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

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