cookie.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. <?php namespace Laravel\Session\Drivers;
  2. use Laravel\Crypter;
  3. class Cookie extends Driver {
  4. /**
  5. * The name of the cookie used to store the session payload.
  6. *
  7. * @var string
  8. */
  9. const payload = 'session_payload';
  10. /**
  11. * Load a session from storage by a given ID.
  12. *
  13. * If no session is found for the ID, null will be returned.
  14. *
  15. * @param string $id
  16. * @return array
  17. */
  18. public function load($id)
  19. {
  20. if (\Laravel\Cookie::has(Cookie::payload))
  21. {
  22. return unserialize(Crypter::decrypt(\Laravel\Cookie::get(Cookie::payload)));
  23. }
  24. }
  25. /**
  26. * Save a given session to storage.
  27. *
  28. * @param array $session
  29. * @param array $config
  30. * @param bool $exists
  31. * @return void
  32. */
  33. public function save($session, $config, $exists)
  34. {
  35. extract($config, EXTR_SKIP);
  36. $payload = Crypter::encrypt(serialize($session));
  37. \Laravel\Cookie::put(Cookie::payload, $payload, $lifetime, $path, $domain);
  38. }
  39. /**
  40. * Delete a session from storage by a given ID.
  41. *
  42. * @param string $id
  43. * @return void
  44. */
  45. public function delete($id)
  46. {
  47. \Laravel\Cookie::forget(Cookie::payload);
  48. }
  49. }