phpfaq.ru/sessionsКак сохранить пользователя авторизованным на сайте?
В общем смысле - нужно в куки (не сессионные, сессии можно вообще не использовать для авторизации)
прописать логин + пароль в зашифрованном виде. Дальше примерно такой код:
/**
* Аутентификация пользователя на основании данных из COOKIE.
*
* @param void
* @return Mvs\Module\User\Model\User
*/
public function processAuthentication()
{
if ($this->request->getCookie(self::ID_COOKIE_NAME, 'string') &&
$this->request->getCookie(self::HASH_COOKIE_NAME, 'string')
) {
$user = $this->mapper->findModelById($this->request->getCookie(self::ID_COOKIE_NAME, 'string'));
if (is_object($user) &&
md5($user->getLogin() . $user->getPassword() . Mvs\Registry::getInstance()->SECURITY['AUTHORIZATION_SALT'])
=== $this->request->getCookie(self::HASH_COOKIE_NAME, 'string')
) {
$user->setVisitdate(new Mvs\Type\Datetime());
$user->setIp($_SERVER['REMOTE_ADDR']);
$this->mapper->saveModel($user);
return $user;
} else {
$this->logout();
}
}
return $this->mapper->findModelById(-1);
}
Сессия при авторизации не нужна по большому счету. Можно проверять доступ пользователя на основании одних лишь кук.
Есть проблема безопасности - могут украсть куку, но при автоологине, все сайты сообщают - мол, это не безопасно.