CakePHP 2.0 Автоматический вход после активации учетной записи

Я просто работаю над компонентом управления пользователями нашего нового проекта. План такой:

Пользователь регистрируется на странице с минимальным количеством данных учетной записи (имя пользователя, пароль, электронная почта)Пользователь получает электронное письмо со ссылкой для активации учетной записиПользователь нажимает на ссылку и активирует свой аккаунтПосле входа в систему пользователь автоматически входит в систему и перенаправляет его на панель инструментов с информацией об учетной записи (последний вход в систему, привет "имя пользователя" и т. Д.).

Но есть некоторые проблемы с автоматическим входом. это часть кода, которую я использую:

<?php
...
// set userstatus to "active" and delete meta information "activation_key"
// then automatically login
$this->User->id = $id;
$this->User->saveField('modified', date('Y-m-d H:i:s') );
$this->User->saveField('status', 1 );

// $this->User->deleteActivationKey ....

$this->Auth->login($this->User->read());
$this->Session->setFlash(__('Successfully activated account. You are now logged in.'));

$this->User->saveField('last_login', date('Y-m-d H:i:s') );

$this->redirect(array('controller' => 'pages'));
...

Пока это работает, пока вы не захотите получить информацию о вошедшем в систему пользователе с помощью функции user () компонента Auth.

Мы используем это в AppController-> beforeRender, чтобы обеспечить доступность информации о пользователе:

$this->set('auth', $this->Auth->user());

но после этого автоматического входа в систему я получаю неопределенные уведомления об индексе. (например, путем доступа к $ auth ['id'] в представлении). print_r () показывает мне только имя пользователя и хешированный пароль текущего пользователя. Если вы входите вручную, все работает нормально. это должно быть что-то с автоматическим входом в систему после активации учетной записи.

Кажется, проблема с сеансом? Что я делаю неправильно?

Ответы на вопрос(2)

Ваш ответ на вопрос