3
我將PHP $_SESSION
數據存儲在數據庫中。如何反序列化node.js中的PHP會話?
然後從一個Node.js服務器我想採取的數據和反序列化它。
我試圖用js-php-unserialize這樣
con.query('SELECT user_id, data ' +
'FROM sessions ' +
'WHERE session_id = ? AND session_id IS NOT NULL AND user_id IS NOT NULL'
, [tokenId] , function(queryError, rows){
if(queryError){
throw queryError;
}
console.log(rows[0].data);
return;
var data;
if(rows[0]){
data = PHPUnserialize.unserialize(rows[0].data);
var now = Math.floor(new Date()/1000);
if(data.MA_IDLE_TIMEOUT < now){
throw 'The session Times out!';
}
if(myIP != data.MA_IP_ADDRESS){
throw 'This session have been hijacked!';
}
但這種不斷拋出此錯誤
SyntaxError: Unknown/Unhandled data type(s): m
at error (C:\Program Files\nodejs\node_modules\php-unserialize\php-unseriali
ze.js:54:13)
at _unserialize (C:\Program Files\nodejs\node_modules\php-unserialize\php-un
serialize.js:166:11)
at Object.unserialize (C:\Program Files\nodejs\node_modules\php-unserialize\
php-unserialize.js:173:10)
at C:\Program Files\nodejs\app.js:41:25
at Layer.handle [as handle_request] (C:\Program Files\nodejs\node_modules\ex
press\lib\router\layer.js:95:5)
at next (C:\Program Files\nodejs\node_modules\express\lib\router\route.js:13
1:13)
at Route.dispatch (C:\Program Files\nodejs\node_modules\express\lib\router\r
oute.js:112:3)
at Layer.handle [as handle_request] (C:\Program Files\nodejs\node_modules\ex
press\lib\router\layer.js:95:5)
at C:\Program Files\nodejs\node_modules\express\lib\router\index.js:277:22
at Function.process_params (C:\Program Files\nodejs\node_modules\express\lib
\router\index.js:330:12)
這裏,我想反序列化
MA_IP_ADDRESS|s:10:"10.0.4.195";MA_USER_AGENT|s:72:"Mozilla/5.0 (Windows NT 6.1;
WOW64; rv:40.0) Gecko/20100101 Firefox/40.0";MA_IDLE_TIMEOUT|i:1442101764;
哪有數據我糾正這個問題?
你嘗試過phpjs版本的反序列化嗎? http://phpjs.org/functions/unserialize/ –
我想你可能會做錯,爲什麼不使用JSON而不是序列化? –