2012-09-15 34 views
5

He leído este post anterior: Generally splitting admin and web app into two entities¿Cómo administrar el inicio de la sesión en CakePHP al construir una API REST?

Básicamente, el quid de la cuestión es que podemos combinar el lado de la API de las cosas y la parte frontal de la web cosas juntas en una sola aplicación CakePHP. Sin embargo, como sabe, REST no tiene estado y no hay ninguna razón para esperar que el cliente conserve una cookie o algo así. ¿Saben cuándo exactamente se dispara la función session_start en CakePHP? Realmente quiero evitar la ejecución session_start cuando se tocan los puntos finales de mi API. Sin embargo, necesitaré una sesión para comenzar cuando se golpeen mis frentes web comunes.

+0

Véase más adelante URL Creo que es muy completo a ayudar tú. ** Desarrollo de aplicaciones web RESTful en cakephp ** http://bakery.cakephp.org/articles/rightwayindia/2010/01/11/restful-web-application-development-in-cakephp http://book.cakephp.org /1.3/view/924/The-Configuration-Class –

Respuesta

0

session_start() se desencadena en CORE\Cake\Model\Datasource\CakeSession.php. si no desea desencadenar el session_start(), asegúrese de no incluir el componente de sesión o el helper en su controlador. Además, asegúrese de no llamar a la sesión o usar el componente Auth, ya que también puede activar automágicamente session_start() en algunos casos.

1

para la torta + v2, en general realizar no realice cualquiera de los siguientes:

  • hacer llamadas a CakeSession componente de la sesión
  • carga o utilizar sesión ayudante
  • retirar $ this-> session- > flash() a partir de diseños
  • dont componente de uso de autenticación

Si usted es stil Al comenzar las sesiones (se puede decir obteniendo una cookie en el encabezado de respuesta), es fácil rastrear quién inicia la sesión. Sólo tiene que añadir las siguientes líneas a lib/Cake/Model/Datasource/CakeSession.php en el método start():

public static function start() { 
    debug_print_backtrace(); 
    exit(); 
    ... 
} 

hacer una petición y verá una pila de llamadas de quién era el culpable :)

+0

Excelente consejo sobre debug_print_backtrace() en CakeSession :: start: ¡es una gran ayuda! – BeesonBison

Cuestiones relacionadas