cookie.php 1.09 KB
Newer Older
1
<?php namespace Laravel\Session\Drivers;
2

3
use Laravel\Crypter;
4

5
class Cookie extends Driver {
6

7
	/**
8 9 10 11 12 13 14
	 * The name of the cookie used to store the session payload.
	 *
	 * @var string
	 */
	const payload = 'session_payload';

	/**
15
	 * Load a session from storage by a given ID.
16
	 *
17
	 * If no session is found for the ID, null will be returned.
18
	 *
19 20 21
	 * @param  string  $id
	 * @return array
	 */
22
	public function load($id)
23
	{
24
		if (\Laravel\Cookie::has(Cookie::payload))
25
		{
26
			return unserialize(Crypter::decrypt(\Laravel\Cookie::get(Cookie::payload)));
27 28 29
		}
	}

30
	/**
31
	 * Save a given session to storage.
32
	 *
33
	 * @param  array  $session
34
	 * @param  array  $config
35
	 * @param  bool   $exists
36 37
	 * @return void
	 */
38
	public function save($session, $config, $exists)
39
	{
Phill Sparks committed
40
		extract($config, EXTR_SKIP);
41

42
		$payload = Crypter::encrypt(serialize($session));
43

44
		\Laravel\Cookie::put(Cookie::payload, $payload, $lifetime, $path, $domain);
45 46
	}

47
	/**
48
	 * Delete a session from storage by a given ID.
49
	 *
50
	 * @param  string  $id
51 52
	 * @return void
	 */
53
	public function delete($id)
54
	{
55
		\Laravel\Cookie::forget(Cookie::payload);
56 57 58
	}

}