Foros del Web » Programando para Internet » PHP »

Autenticacion cURL

Estas en el tema de Autenticacion cURL en el foro de PHP en Foros del Web. Aqui les planteo la siguiente duda: En sub2.server.com tengo mi formulario de login, el cual manda datos via curl a api.server.com , este subdominio se ...
  #1 (permalink)  
Antiguo 18/12/2010, 21:21
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Autenticacion cURL

Aqui les planteo la siguiente duda:

En sub2.server.com tengo mi formulario de login, el cual manda datos via curl a api.server.com, este subdominio se encarga de crear las sesiones del usuario en el mismo subdominio para que posteriormente cuando haga una peticion pueda devolverme el contenido, el problema es que las sesiones no se estan creando =S, cuando las intento crear desde api.server.com no tengo ningun problema, pero cuando mando los datos desde sub2.server.com no se crean, se me hace extraño por que no estoy creando las sesiones de sub2, sino que le paso valores al otro subdominio, y es este el que crea las sesiones, alguna respuesta ?
  #2 (permalink)  
Antiguo 19/12/2010, 14:34
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Autenticacion cURL

creo que no me explique bien por que no tengo ninguna respuesta.

al parecer si api.server.com nota que si "la orden" para la creacion de sesiones vino mediante curl desde otro lado entonces la ignorara, realiza muy bien mi proceso de autenticacion, pero todo lo que tenga que ver con cookies o sesiones sera ignorado.

Me di cuenta de esto, por que cuando ejecuto mi metodo de creacion de sesiones desde el mismo api.server.com/usuarios/creamisesion lo hace sin problemas.

Solo tengo la duda de saber si hay una manera de hacer que api creara las sesiones incluso si la orden vino mediante curl desde otro lado.
  #3 (permalink)  
Antiguo 20/12/2010, 12:27
 
Fecha de Ingreso: agosto-2008
Ubicación: Puebla, Mexico.
Mensajes: 84
Antigüedad: 15 años, 8 meses
Puntos: 0
Respuesta: Autenticacion cURL

Por ejemplo probemos con lo mas simple del mundo

Código PHP:
create_sess.php
session_start
();
$_SESSION['my_sess'] = 'some session value'
y entonces ejecutamos en el browser
Código PHP:
http://localhost/create_sess.php 
Hasta aqui todo bien, se crea una sesion simple de prueba, pero ahora intenten haciendo lo siguiente

Código PHP:
$ch curl_init();
curl_setopt($chCURLOPT_URL'http://localhost/create_sess.php');
curl_setopt($chCURLOPT_FAILONERROR1);
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_RETURNTRANSFER1);
curl_setopt($chCURLOPT_TIMEOUT5);
$content curl_exec($ch);
curl_close($ch); 
Es aqui donde vienen los problemas, la sesion no se crea, alguien me puede decir por que?
  #4 (permalink)  
Antiguo 20/12/2010, 12:35
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Autenticacion cURL

Tienes que entender dos cosas fundamentales, las sesiones al crearse crean una cookie donde se almacena el identificador de sesión, esta cookie se llama PHPSESSID. Lo que tu haces cuando usar cURL es hacer una petición HTTP, por lo que PHP va a intentar establecer tu cookie, si a cURL no le pasas el parámetro del CookieJAR la cookie se va a perder, necesitas pasarle ese parámetro para que cURL pase la misma cookie de regreso al servidor y así se mantenga la sesión.

Tu no puedes crear una sesión con cURL en tu server y esperar que la sesión exista en tu script principal, la única forma de hacerlo es que tomes esa cookie (PHPSESSID) y la mandes a tu script PHP para poder usar la misma sesión.

Saludos.

Etiquetas: curl
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:46.