Browse Source

账户中心登录

yingp 7 years ago
parent
commit
d2eb0b0f50
2 changed files with 35 additions and 5 deletions
  1. 1 1
      frontend/saas-portal-web/config/env.js
  2. 34 4
      frontend/saas-portal-web/src/js/main.js

+ 1 - 1
frontend/saas-portal-web/config/env.js

@@ -10,7 +10,7 @@ if (process.env.NODE_ENV == 'production') {
     window.env = {
         profile: 'development',
         server: {
-            baseUrl: 'http://192.168.0.174:8560',
+            baseUrl: 'http://192.168.0.181:8560',
             ssoUrl: 'http://192.168.253.12:32323'
         }
     }

+ 34 - 4
frontend/saas-portal-web/src/js/main.js

@@ -103,6 +103,33 @@ $(document).ready(function(){
             }
         };
     })();
+    var Session = (function(){
+        var key = 'session';
+        return {
+            load: function() {
+                return Store.get(key);
+            },
+            loadData: function(data) {
+                data.span = data.timestamp - new Date().getTime();
+                Store.set(key, data);
+            },
+            isValid: function() {
+                var token = this.load();
+                return token && token.timestamp + token.expire * 1000 > new Date().getTime() + token.span;
+            },
+            get: function(prop) {
+                var token = this.load();
+                return token ? token[prop] : null;
+            },
+            set: function(prop, value) {
+                var token = this.load();
+                if (token) {
+                    token[prop] = value;
+                    Store.set(key, token);
+                }
+            }
+        }
+    })();
     var setUserProfile = function(account) {
         if (account) {
             $(".login").css("display","none");
@@ -115,14 +142,16 @@ $(document).ready(function(){
         }
     };
     // 已经登录过从Store取出信息
-    setUserProfile(Store.get('account'));
+    setUserProfile(Session.get('account'));
     // socket
     var listenOnCallback = function(clientId, resolve) {
         var socket = new SockJS(env.server.baseUrl + "/ws");
         stompClient = Stomp.over(socket);
         stompClient.connect({}, function(frame) {
             stompClient.subscribe('/clients/' + clientId + '/sso/callback', function(message){
-                resolve(JSON.parse(message.body));
+                stompClient.disconnect(function(){
+                    resolve(JSON.parse(message.body));
+                });
             });
         });
     };
@@ -142,8 +171,9 @@ $(document).ready(function(){
                 encodeURIComponent(env.server.baseUrl + '/api/auth/sso/callback/' + clientId));
             $('#box').show();
             listenOnCallback(clientId, function(data){
-                var account = data.account;
-                Store.set('account', account);
+                var session = data.token, account = data.account;
+                session.account = account;
+                Session.loadData(session);
                 setUserProfile(account);
                 $('#box').hide();
                 $(".zhezhao").css("display","none");