Estoy haciendo una aplicación con codeigniter, e implementando nodejs para cosas en tiempo real. Quiero verificar si un usuario ha iniciado sesión con nodejs. Con el código de abajo soy capaz de obtener el identificador de sesión en el servidor CodeIgniter nodejs:Codeigniter lee la cookie de sesión en nodejs
var server = require('https').createServer(options, function(request, response){
var cookies=(function(str){
var result={};
str.split(/;\s+/).forEach(function(e){
var parts=e.split(/=/,2);
result[parts[0]]=parts[1]||'';
});
return result;
})(request.headers.cookie),
sessionCookieName='ci_session',
sessionId=cookies[sessionCookieName]||'';
console.log(sessionId);
}).listen(8080);
La sesión CodeIgniter se almacena en la base de datos y el cifrado se establece en true. Y sess_match_ip = TRUE, sess_match_useragent = TRUE;
Ahora mi pregunta es, ¿cuál es una buena manera de comprobar si el usuario ha iniciado sesión? He instalado el cliente node-mysql. Iknow que CI hace algo como:
SELECT *
FROM (`ci_sessions`)
WHERE `session_id` = 'blabla'
AND `ip_address` = '127.0.0.1'
AND `user_agent` = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2
(KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2'
¿Cómo descifrar el identificador de sesión y comprobar si consigo un partido de la db?
Gracias de antemano
George
Gracias por la respuesta :) ¿Hay una manera de hacer la función de "descifrar "¿privado? – georgesamper
Resulta que no se puede llamar a una función privada a través del cli. ¿Hay alguna otra forma de denegar el acceso a esa función que no sea la llamada del nodo? – georgesamper
Descubrió que puede hacer esto con 'codeigniters is_cli_request()' http://stackoverflow.com/questions/8362946/codeigniter-calling-private-function-on-cli – georgesamper