【发布时间】:2012-01-11 03:37:55
【问题描述】:
我正在使用 codeigniter 制作应用程序,并为实时内容实现 nodejs。我想检查用户是否使用 nodejs 登录。使用下面的代码,我可以在 nodejs 服务器中获取 codeigniter 会话 ID:
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);
codeigniter 会话存储在数据库中,并且加密设置为 true。 而sess_match_ip = TRUE, sess_match_useragent = TRUE;
现在我的问题是,检查用户是否登录的好方法是什么? 我已经安装了 node-mysql 客户端。我知道 CI 做了类似的事情:
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'
如何解密会话 id 并检查是否从数据库中获得匹配项?
提前致谢
乔治
【问题讨论】:
标签: php mysql codeigniter session node.js