12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
-
- namespace Illuminate\Session;
-
- use SessionHandlerInterface;
- use Illuminate\Contracts\Encryption\DecryptException;
- use Illuminate\Contracts\Encryption\Encrypter as EncrypterContract;
-
- class EncryptedStore extends Store
- {
- /**
- * The encrypter instance.
- *
- * @var \Illuminate\Contracts\Encryption\Encrypter
- */
- protected $encrypter;
-
- /**
- * Create a new session instance.
- *
- * @param string $name
- * @param \SessionHandlerInterface $handler
- * @param \Illuminate\Contracts\Encryption\Encrypter $encrypter
- * @param string|null $id
- * @return void
- */
- public function __construct($name, SessionHandlerInterface $handler, EncrypterContract $encrypter, $id = null)
- {
- $this->encrypter = $encrypter;
-
- parent::__construct($name, $handler, $id);
- }
-
- /**
- * Prepare the raw string data from the session for unserialization.
- *
- * @param string $data
- * @return string
- */
- protected function prepareForUnserialize($data)
- {
- try {
- return $this->encrypter->decrypt($data);
- } catch (DecryptException $e) {
- return serialize([]);
- }
- }
-
- /**
- * Prepare the serialized session data for storage.
- *
- * @param string $data
- * @return string
- */
- protected function prepareForStorage($data)
- {
- return $this->encrypter->encrypt($data);
- }
-
- /**
- * Get the encrypter instance.
- *
- * @return \Illuminate\Contracts\Encryption\Encrypter
- */
- public function getEncrypter()
- {
- return $this->encrypter;
- }
- }
|