/** * Setta i cookie dell'utente * @param PCModelUserOauth $user * @return boolean */ private function authorizeUser($user) { if(isset($user) === FALSE) return FALSE; $_SESSION['user'] = $user->getIdentifier(); $secret = $this->application->getAppSecret(); $appId = $this->application->getIdentifier(); $time = time(); $cookieValue = PCAuth::computeHashForString($user->getUsername() . $time . $secret); $distantFuture = PCResponseCookie::getDistantFuture(); if (PCMapperToken::setTokenForUserWithIdentifier($user->getIdentifier(), $appId, $cookieValue, $distantFuture)) { $_SESSION['user'] = $user->getIdentifier(); $presence_cookie = PCResponseCookie::lifetimeCookie("presence_c", $cookieValue); $user_cookie = PCResponseCookie::lifetimeCookie("user", $user->getIdentifier()); $response = PCResponse::currentResponse(); $response->addCookie($presence_cookie); $response->addCookie($user_cookie); PCModelUser::setCurrentUser($user); return TRUE; } return FALSE; }
/** * * @param PCModelApplication $application */ public function doLogout($application) { session_destroy(); $response = PCResponse::currentResponse(); $response->addCookie(PCResponseCookie::expiredCookie("user")); $response->addCookie(PCResponseCookie::expiredCookie("presence_c")); PCMapperToken::removeTokenForUser($this->user_id, $application->getAppId()); }