Я пытаюсь реализовать помню мне функциональность в cakephp. Во-первых, когда пользователь нажимает на доменную страницу входа в систему, должен появиться, если пользователь нажмет кнопку «Запомнить меня» во время входа в систему, когда следующий раз пользователь попадет в домен он должен перенаправить на другую страницу, а не на страницу входа, если помнить, что меня не проверяет, тогда должна появиться страница входа в систему.Запомнить меня с cakephp Auth Войти
Здесь запомнить меня работает, но если пользователь вошел в систему в необходимости отобразить страницу домашний каталог не Войти страница
, как я могу это реализовать.
Спасибо за помощь ...
Вот мой код я работаю над:
routes.php:
Router::connect('/', array('controller' => 'users', 'action'=>'login'));
Router::connect('/:action',
array('controller' => 'users', 'action' => 'userhome'),
array('pass' => array('')));
AppController.php
public $components = array(
'Session','Auth' => array('loginRedirect' =>
array('controller' => 'users', 'action' => 'userhome'),
'logoutRedirect' => '/','authorize'=>array('Controller'),),'Cookie');
public function beforeFilter() {
$this->Cookie->httpOnly = true;
if (!$this->Auth->loggedIn() && $this->Cookie->read('rememberMe')) {
$cookie = $this->Cookie->read('rememberMe');
echo debug($cookie);
$this->loadModel('User'); // If the User model is not loaded already
$user = $this->User->find('first', array(
'conditions' => array(
'User.username' => $cookie['username'],
'User.password' => $cookie['password']
)
));
public function login() {
if($this->request->is('post')){
if ($this->Auth->login()) {
if ($this->request->data['User']['rememberMe'] == 1) {
// After what time frame should the cookie expire
$cookieTime = "12 months"; // You can do e.g: 1 week, 17 weeks, 14 days
// remove "remember me checkbox"
unset($this->request->data['User']['rememberMe']);
// hash the user's password
$this->request->data['User']['password'] = $this->Auth->password($this->request->data['User']['password']);
// write the cookie
$this->Cookie->write('rememberMe', $this->request->data['User'], true, $cookieTime);
}
$this->redirect($this->Auth->redirect());
}
}
}
if ($user && !$this->Auth->login($user['User'])) {
$this->redirect('/users/logout'); // destroy session & cookie
}
}
View :
<?php echo $this->Form->input('rememberMe', array('type' => 'checkbox',
'label' => 'Remember me','class'=>'rememberme')); ?>
спасибо за ответ ... – user1851420
Здесь я столкнулся еще problem.when я закрыть мой браузер печенье становится уничтожены, событие, если я проверяю память ber me во время входа в систему. В моем файле php.ini cookieifetime установлено значение 0. – user1851420
Вы уверены, что не уничтожаете файл cookie в своем AppController в методе afterFilter или какой-либо оставшийся тестовый код? В противном случае попробуйте найти похожие вопросы. Например [этот] (http://stackoverflow.com/questions/12301425/cakephp-cookies-not-persisting-after-browser-close), может быть? – lp1051