hy 7 år sedan
förälder
incheckning
6a33f52554
1 ändrade filer med 45 tillägg och 1 borttagningar
  1. 45 1
      frontend/saas-web/app/view/viewport/ViewportController.js

+ 45 - 1
frontend/saas-web/app/view/viewport/ViewportController.js

@@ -73,7 +73,13 @@ Ext.define('saas.view.viewport.ViewportController', {
             // There is no authenticated user, let's redirect to the login page but keep track
             // of the original route to restore the requested route after user authentication.
             me.originalRoute = route;
-            me.redirectTo('login', {replace: true});
+            //没有session时  判断cookie中的uid
+            var hasValidCookie = Ext.util.Cookies.get('uid')?me.getAccountCookie():false;
+            if(!hasValidCookie){
+                me.redirectTo('login', {replace: true});
+            }else{
+                me.redirectTo('main', {replace: true});
+            }
             return;
         }
 
@@ -85,6 +91,44 @@ Ext.define('saas.view.viewport.ViewportController', {
         }
     },
 
+    getAccountCookie:function(){
+        var hasValidCookie = false;
+        Ext.Ajax.request({
+            url: 'http://192.168.253.31:8560/api/auth/info',
+            withCredentials: true,
+            async:false,
+            dataType: 'json',
+            headers:{
+                'Authorization':'',
+                'Access-Control-Allow-Origin': '<origin> | *'
+            },
+            method: 'GET',
+            success: function(response, opts) {
+                var res = Ext.decode(response.responseText);
+                var data = res.data;
+                var token = data.token;
+                data.expire = token.expire;
+                data.timestamp = token.timestamp;
+                data.token = token.token;
+                delete data['token'];
+                if(data.conpanyId){
+                    session = data? saas.model.Session.loadData(data) : null;
+                    if (session && session.isValid()) {
+                        me.setRequestToken(session.get('token'));
+                        me.saveSession(session);
+                    }
+                    hasValidCookie = true
+                }else{
+                    window.location.href = Ext.manifest.server.accountCenter
+                }
+            },
+            failure: function(response, opts) {
+                showErrorToast('解析cookie失败:'+response.message)
+            }
+        });
+        return hasValidCookie;
+    },
+
     setRequestToken: function(token) {
         var headers = Ext.Ajax.getDefaultHeaders() || {};
         if (token) {