Browse Source

Change router to limit rule && fix session ID

HonorLee 5 years ago
parent
commit
764b43b43f
2 changed files with 21 additions and 4 deletions
  1. 0 1
      system/lib/core/router.js
  2. 21 3
      system/lib/core/session.js

+ 0 - 1
system/lib/core/router.js

@@ -52,7 +52,6 @@ var Router ={
         let baseClass = new HANDLER(req,res);
         let newHandlerClass = Object.assign(baseClass,handler);
 
-        if(!CACHE.router[handlerFile]){ CACHE.router[handlerFile] = true;}
         if(newHandlerClass.COOKIE && newHandlerClass.COOKIE['session']){
             new SESSION.instance(newHandlerClass.COOKIE['session'],function(sessionid,session){
                 newHandlerClass.session = session;

+ 21 - 3
system/lib/core/session.js

@@ -24,6 +24,24 @@ var Session = {
             callback.call(_this,null,session);
         });
     },
+    setWithSessionID:function(sessionID,key,value,callback){
+        callback = Manager.buildCallback(callback);
+        if(!key || value==null) return callback.call(this,'Session key or value is empty',null);
+        let _this = this;
+        let session = {};
+
+        session.id = sessionID;
+        session.data = {};
+        session.data[key] = value;
+        session.expire = Config.SessionExpire*60;
+        session.expireTime = new Date().getTime()+session.expire*1000;
+        session.autoRenewExpire = Config.SessionExpire*60;
+
+        Manager.set(session,function(err){
+            if(err) return callback.call(_this,'Session set err;',null);
+            callback.call(_this,null,session);
+        });
+    },
     setExpireTime:function(sessionid,expire,autoRenewExpire,callback){
         let _this = this;
         callback = Manager.buildCallback(callback);
@@ -179,10 +197,10 @@ var Instance = function(sessionID,callback){
     if(sessionID){
         Session.get(sessionID,function(err,session){
             if(err || !session){
-                Session.set('status',0,function(err,new_session){
+                Session.setWithSessionID(sessionID,'status',0,function(err,new_session){
                     _data = new_session.data;
-                    _this.sessionID = new_session.id;
-                    if(callback) callback(new_session.id,_this);
+                    // _this.sessionID = new_session.id;
+                    if(callback) callback(sessionID,_this);
                 });
             }else{
                 _data = session.data;