暂存
This commit is contained in:
+69
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Session;
|
||||
|
||||
use Illuminate\Contracts\Encryption\DecryptException;
|
||||
use Illuminate\Contracts\Encryption\Encrypter as EncrypterContract;
|
||||
use SessionHandlerInterface;
|
||||
|
||||
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
|
||||
* @param string $serialization
|
||||
*/
|
||||
public function __construct($name, SessionHandlerInterface $handler, EncrypterContract $encrypter, $id = null, $serialization = 'php')
|
||||
{
|
||||
$this->encrypter = $encrypter;
|
||||
|
||||
parent::__construct($name, $handler, $id, $serialization);
|
||||
}
|
||||
|
||||
/**
|
||||
* 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) {
|
||||
return $this->serialization === 'json' ? json_encode([]) : 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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user