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

3
use Laravel\Crypter;
4

5
class Cookie implements 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 27 28
			$cookie = Crypter::decrypt(\Laravel\Cookie::get(Cookie::payload));

			return unserialize($cookie);
29 30 31
		}
	}

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

44
		$payload = Crypter::encrypt(serialize($session));
45

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

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

}