Foros del Web » Programando para Internet » Node.js »

[SOLUCIONADO] realizar un request a una pagina protegida por sesion

Estas en el tema de realizar un request a una pagina protegida por sesion en el foro de Node.js en Foros del Web. Tengo el siguiente problema, Tengo codeigniter y node.js corriendo, y estoy necesitando que node.js me traiga cierta informacion de una pagina determinada de codeigniter, esto ...
  #1 (permalink)  
Antiguo 23/09/2013, 16:37
 
Fecha de Ingreso: abril-2011
Ubicación: Mendoza
Mensajes: 42
Antigüedad: 13 años
Puntos: 0
Exclamación realizar un request a una pagina protegida por sesion

Tengo el siguiente problema,

Tengo codeigniter y node.js corriendo, y estoy necesitando que node.js me traiga cierta informacion de una pagina determinada de codeigniter, esto es facil haciendo request.get o request.post a la url y listo, el problema radica, en que esa pagina que necesito esta protegida por session...

Vamos desde el principio..

Tengo una pagina protegida por usuer y pass, clasico acceso mediante seteo de sessiones en codeigniter.

Y deseo acceder a esa pagina desde un request.get desde node.s, lo hago con socket.io y request... algo asi

Tengo


Código Javascript:
Ver original
  1. var rst = require('request');
  2. io.sockets.on('connection', onConnection);
  3.  
  4. function onConnection(socket){
  5.  
  6.       socket.on('sendRequest',function(type,url,data){
  7.            var options = {
  8.                   url:url
  9.            };
  10.  
  11.            rst.get(options, function(error, response, body) {
  12.             var result = {content:body,url:options.url};
  13.                   if (!error && response.statusCode === 200) {
  14.                        socket.emit('resultRequest',result);
  15.                 }
  16.            });
  17.       });
  18. }

Podria tener acceso a la cookie de sesion, haciendo algo asi

Código Javascript:
Ver original
  1. io.set('authorization', function (data, accept) {
  2.     // check if there's a cookie header
  3.     if (data.headers.cookie) {
  4.         // if there is, parse the cookie
  5.         data.cookie = cookie.parse(data.headers.cookie);
  6.         // note that you will need to use the same key to grad the
  7.         // session id, as you specified in the Express setup.
  8.         data.sessionID = data.cookie['PHPSESSID'];
  9.     } else {
  10.         // if there isn't, turn down the connection with a message
  11.         // and leave the function.
  12.         return accept('No cookie transmitted.', false);
  13.     }
  14.     // accept the incoming connection
  15.     accept(null, true);
  16. });

Pero no he podido enviarla y que me sea aceptada en el request, la devolucion que me hace es la pagina que deberia mostrarme al estar deslogueado... :(


Algua idea ????
__________________
Claudio A. Marrero - Proyect Manager
  #2 (permalink)  
Antiguo 24/09/2013, 05:15
 
Fecha de Ingreso: abril-2011
Ubicación: Mendoza
Mensajes: 42
Antigüedad: 13 años
Puntos: 0
Respuesta: realizar un request a una pagina protegida por sesion

Bueno, aqui la solucion, lo importante, es lo que marque en negrita...

Código:
var io = require('socket.io').listen(9000);
var rst = require('request');
io.set('log level', 1, 'log color', true);
io.set('authorization', function (data, accept) {
    // accept the incoming connection
    accept(null, true);
});

io.sockets.on('connection', request);
function request(socket){
    var self = this;
    socket.on('recibe',function(type,url,data){
        var options = {
            url:url+'/?ajax=1',
            headers:socket.handshake.headers
        };
    };

    this.requestGet = function(options,data){
        rst.get(options, function(error, response, body) {
            var result = {content:body,url:options.url};
            if (!error && response.statusCode === 200) {
                socket.emit('send',result);
            }
        });
    };
}
__________________
Claudio A. Marrero - Proyect Manager

Última edición por zerokilled; 24/09/2013 a las 08:05 Razón: bbcode no funciona en highlight

Etiquetas: request
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 04:23.