Jelajahi Sumber

自动刷新token逻辑

zhuth 7 tahun lalu
induk
melakukan
3078a2e068
1 mengubah file dengan 31 tambahan dan 1 penghapusan
  1. 31 1
      frontend/saas-web/overrides/data/Connection.js

+ 31 - 1
frontend/saas-web/overrides/data/Connection.js

@@ -44,6 +44,36 @@ Ext.define('saas.override.data.Connection', {
             this.setupServerOptions(options);
         }
         return this.callParent([options]);
-    }
+    },
+    onRequestComplete: function(request) {
+        let headers = request.result.getAllResponseHeaders(),
+        Authorization = headers['authorization'];
+
+        if(Authorization) {
+            // 如果返回了token则刷新token
+            let headers = Ext.Ajax.getDefaultHeaders() || {};
+            let session = saas.util.State.get('session');
+            
+            headers['Authorization'] = Authorization;
+            Ext.Ajax.setDefaultHeaders(headers);
+
+            session.token = Authorization;
+
+            saas.util.State.set('session', session);
+
+            let sessionStr = session ? JSON.stringify(session) : '';
+
+            if (typeof require === 'function') {
+                let ipc = require('electron').ipcRenderer;
+                ipc.send('session.change', sessionStr);
+            }else {
+                //解析session 把data作为sessionStr
+                sessionStr = session ? JSON.stringify(session.data) : '';
+                const frame = window.frames[window.frames.length - 1];
+                frame.postMessage(sessionStr, '*');
+            }
+        }
+    },
+
  });