我使用codeigniter製作了一個應用程序,並實現了實時東西的nodejs。我想檢查用戶是否使用nodejs登錄。隨着下面的代碼,我能夠得到笨會話ID在服務器的NodeJS:Codeigniter在nodejs中讀取會話cookie
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);
的笨會話存儲在數據庫和加密設置爲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並檢查是否從數據庫獲得匹配?
在此先感謝
喬治
感謝您的回答:) 有沒有一種方法,使功能「解密「 私人的? – georgesamper
原來你不能通過cli調用一個私有函數。除了nodejs調用之外,是否有其他方法可以拒絕對該函數的訪問? – georgesamper
發現你可以用'codeigniters is_cli_request()'來實現這一點http://stackoverflow.com/questions/8362946/codeigniter-calling-private-function-on-cli – georgesamper