Verzeichnisstruktur phpBB-3.1.0


Veröffentlicht
27.10.2014

So funktioniert es


Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück

Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis.
Auf den Verzeichnisnamen klicken, dies zeigt nur das Verzeichnis mit Inhalt an

(Beispiel Datei-Icons)

Auf das Icon klicken um den Quellcode anzuzeigen

Session.php

Zuletzt modifiziert: 09.10.2024, 12:58 - Dateigröße: 2.69 KiB


001  <?php
002  namespace OAuth\Common\Storage;
003   
004  use OAuth\Common\Token\TokenInterface;
005  use OAuth\Common\Storage\Exception\TokenNotFoundException;
006   
007  /**
008   * Stores a token in a PHP session.
009   */
010  class Session implements TokenStorageInterface
011  {
012      /**
013       * @var string
014       */
015      protected $sessionVariableName;
016   
017      /**
018       * @param bool $startSession Whether or not to start the session upon construction.
019       * @param string $sessionVariableName the variable name to use within the _SESSION superglobal
020       */
021      public function __construct($startSession = true, $sessionVariableName = 'lusitanian_oauth_token')
022      {
023          if( $startSession && !isset($_SESSION)) {
024              session_start();
025          }
026   
027          $this->sessionVariableName = $sessionVariableName;
028          if (!isset($_SESSION[$sessionVariableName]))
029          {
030              $_SESSION[$sessionVariableName] = array();
031          }
032      }
033   
034      /**
035       * @return \OAuth\Common\Token\TokenInterface
036       * @throws TokenNotFoundException
037       */
038      public function retrieveAccessToken($service)
039      {
040          if ($this->hasAccessToken($service))
041          {
042              return $_SESSION[$this->sessionVariableName][$service];
043          }
044   
045          throw new TokenNotFoundException('Token not found in session, are you sure you stored it?');
046      }
047   
048      /**
049       * @param \OAuth\Common\Token\TokenInterface $token
050       */
051      public function storeAccessToken($service, TokenInterface $token)
052      {
053          if (isset($_SESSION[$this->sessionVariableName]) &&
054              is_array($_SESSION[$this->sessionVariableName]))
055          {
056              $_SESSION[$this->sessionVariableName][$service] = $token;
057          }
058          else
059          {
060              $_SESSION[$this->sessionVariableName] = array(
061                  $service => $token,
062              );
063          }
064   
065          // allow chaining
066          return $this;
067      }
068   
069      /**
070      * @return bool
071      */
072      public function hasAccessToken($service)
073      {
074          return isset($_SESSION[$this->sessionVariableName], $_SESSION[$this->sessionVariableName][$service]);
075      }
076   
077      /**
078       * Delete the user's token. Aka, log out.
079       */
080      public function clearToken($service)
081      {
082          if (array_key_exists($service, $_SESSION[$this->sessionVariableName])) {
083              unset($_SESSION[$this->sessionVariableName][$service]);
084          }
085   
086          // allow chaining
087          return $this;
088      }
089   
090      /**
091       * Delete *ALL* user tokens. Use with care. Most of the time you will likely
092       * want to use clearToken() instead.
093       */
094      public function clearAllTokens()
095      {
096          unset($_SESSION[$this->sessionVariableName]);
097   
098          // allow chaining
099          return $this;
100      }
101   
102      public function  __destruct()
103      {
104          session_write_close();
105      }
106  }
107