php-unserialize 可以反序列化 PHP serialize() 後的資料=>使用 unserialize(string)
也可以解析 PHP 儲存的 seesion 資料(例如儲存在 Redis 的Sessoin) =>使用 unserializeSession(string)
$ npm install php-unserialize --save
[Node.js 讀取儲存在 Redis 的 PHP Session 範例]
"use strict"; //redis 連線設定 const REDIS_HOST = "127.0.0.1"; const REDIS_PORT = 6379; const REDIS_OPTS = {}; const REDIS_PASS = "密碼"; let redis = require('redis'); let redis_client = redis.createClient(REDIS_PORT, REDIS_HOST, REDIS_OPTS); redis_client.on("error", function (err) { console.log("Error:" + err); }); redis_client.auth(REDIS_PASS);//密碼驗證 var PHPUnserialize = require('php-unserialize'); let php_sess_key = "PHP Session儲存在Redis的Key";//例如PHPREDIS_SESSION:n47g4vh1qt2pltplkd3lhifes2 //讀取資料後,利用 callback function 處理取得資料 redis_client.get(php_sess_key, function (err, results) { if (null !== err) { try { //使用 unserializeSession 解析 session 資料 let sess = PHPUnserialize.unserializeSession(results); console.log(sess); console.log(sess.user.u_id); } catch (err) { //錯誤處理..... } } });
參考:
GitHub - naholyr/js-php-unserialize: JavaScript tool to unserialize data taken from PHP. It can parse "serialize()" output, or even serialized sessions data.
沒有留言:
張貼留言