cookie.php 997 B

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