Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /**
- * Slaat de data(1) encrypted op in een cookie en een sessie.
- *
- * (1) customer_username_password
- *
- * Bij het ophalen van de data wordt alles decrypted terug gegeven.
- *
- * @category AC
- * @package AC_Auth
- * @author Stijn Leenknegt
- */
- class AC_Auth_Storage implements Zend_Auth_Storage_Interface
- {
- /**
- * Standaard session namespace.
- */
- const SESSION_NACESPACE = 'AC_Auth';
- /**
- * Standaard session naam.
- */
- const SESSION_MEMBER = 'storage';
- /**
- * Standaard cookie naam.
- */
- const COOKIE_NACE = 'AC_Auth';
- /**
- * Standaard duurtijd van de cookie van 1 jaar.
- */
- const COOKIE_LIFETIME = 31536000;
- /**
- * Session namespace.
- *
- * @var string
- */
- private $_sessionNamespace;
- /**
- * Session member naam.
- *
- * @var string
- */
- private $_sessionMember;
- /**
- * Cookie naam.
- *
- * @var string
- */
- private $_cookieName;
- /**
- * Cookie duurtijd.
- *
- * @var integer
- */
- private $_cookieLifetime;
- /**
- * Session object.
- *
- * @var Zend_Session_Namespace
- */
- private $_session;
- /**
- * Initialiseert het standaard Agro Manager storage object.
- *
- * @param string $sessionNamespace
- * @param string $sessionMember
- * @param string $cookieName
- * @param integer $cookieLifetime
- */
- public function __construct($sessionNamespace = self::SESSION_NACESPACE, $sessionMember = self::SESSION_MEMBER, $cookieName = self::COOKIE_NACE, $cookieLifetime = self::COOKIE_LIFETIME)
- {
- $this->_sessionNamespace = $sessionNamespace;
- $this->_sessionMember = $sessionMember;
- $this->_cookieName = $cookieName;
- $this->_cookieLifetime = $cookieLifetime;
- $this->_session = new Zend_Session_Namespace($this->_sessionNamespace);
- }
- /**
- * Geeft de waarde van de cookie terug.
- * Deze waarde is niet decrypted.
- *
- * @return string
- */
- private function getCookie()
- {
- if (isset($_COOKIE[$this->_cookieName])) {
- return $_COOKIE[$this->_cookieName];
- }
- return "";
- }
- /**
- * Stelt de cookie in. De data parameter moet encrypted zijn.
- *
- * @param string $data
- */
- private function setCookie($data)
- {
- setcookie($this->_cookieName, $data, time() + $this->_cookieLifetime);
- }
- /**
- * Deletes the authentication cookie.
- */
- private function deleteCookie()
- {
- setcookie($this->_cookieName, '', time() - $this->_cookieLifetime);
- }
- /**
- * Defined by Zend_Auth_Storage_Interface
- *
- * @return boolean
- */
- public function isEmpty()
- {
- if(isset($this->_session->{$this->_sessionMember})) {
- return false;
- } else {
- $cookie = $this->getCookie();
- if (!empty($cookie)) {
- return false;
- }
- }
- return true;
- }
- /**
- * Defined by Zend_Auth_Storage_Interface
- *
- * @return mixed
- */
- public function read()
- {
- $contents = $this->_session->{$this->_sessionMember};
- if(empty($contents)) {
- $contents = $this->getCookie();
- }
- if(!empty($contents)) {
- $contents = AC_Encrypt::decrypt($contents);
- }
- return $contents;
- }
- /**
- * Defined by Zend_Auth_Storage_Interface
- *
- * @param mixed $contents
- * @return void
- */
- public function write($contents)
- {
- $contents = AC_Encrypt::encrypt($contents);
- $this->_session->{$this->_sessionMember} = $contents;
- $this->setCookie($contents);
- }
- /**
- * Defined by Zend_Auth_Storage_Interface
- *
- * @return void
- */
- public function clear()
- {
- unset($this->_session->{$this->_sessionMember});
- $this->deleteCookie();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement