huangb 7 жил өмнө
parent
commit
d1e78d091a
3 өөрчлөгдсөн 61 нэмэгдсэн , 12 устгасан
  1. 4 2
      app.html
  2. 56 9
      pages/logquit/index.vue
  3. 1 1
      server.js

+ 4 - 2
app.html

@@ -52,7 +52,8 @@
       }
     })(window, document)
   </script>
-  <script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>
+  <!--微信-->
+  <!--<script src="http://res.wx.qq.com/connect/zh_CN/htmledition/js/wxLogin.js"></script>-->
   <script>
     // var obj = new WxLogin({
     //   id: 'login_container',
@@ -91,7 +92,8 @@
   // }
 </script>
 </body>
-<script src="https://dfs.ubtob.com/group1/M00/B6/72/CgpkyFtP4L6ABNMFAAAfPEFQbFI5116.js"></script>
+<!--闭合-->
+<!--<script src="https://dfs.ubtob.com/group1/M00/B6/72/CgpkyFtP4L6ABNMFAAAfPEFQbFI5116.js"></script>-->
 <script>
   if(navigator.appName == "Microsoft Internet Explorer"&&parseInt(navigator.appVersion.split(";")[1].replace(/[ ]/g, "").replace("MSIE",""))<10){
     var el = document.getElementById('result')

+ 56 - 9
pages/logquit/index.vue

@@ -23,18 +23,65 @@
         this.$http.get('/sso/login/logout', {params: this.$route.query})
           .then(response => {
             if (response.data.success) {
-              for (let i = 0; i < response.data.content.logoutUrls.length; i++) {
-                if (response.data.content.logoutUrls[i]) {
-                  this.$jsonp(`${response.data.content.logoutUrls[i]}`, function (err) {
-                    if (err) throw err
-                  })
-                }
+              let param = response.data.content.logoutUrls
+              let a = ''
+              for (let n in param) {
+                a += (n + '=' + encodeURIComponent(param[n]) + '&')
               }
-              setTimeout(function () {
-                window.location.href = `${response.data.content.returnURL}`
-              }, 1000)
+              let params = a.substr(0, a.length - 1)
+              if (this.$route.query.baseUrl) {
+                this.$jsonp(`${this.$route.query.baseUrl}`, {
+                  name: 'successCallback',
+                  timeout: 3000
+                }, (err, data) => {
+                  if (err) {
+                    this.$message.error('退出失败,请重试')
+                    throw err
+                  } else {
+                    this.logoutOther(response, params)
+                  }
+                })
+              } else {
+                this.logoutOther(response, params, 3000)
+              }
+            }
+          })
+      },
+      getJsonp: function (url, timeout = 500) {
+        return new Promise((resolve, reject) => {
+          this.$jsonp(url, {
+            name: 'successCallback',
+            timeout: timeout
+          }, function (err, data) {
+            if (err) {
+              reject(err)
+              throw err
+            } else {
+              resolve(data)
             }
           })
+        })
+      },
+      crossAfter (url) {
+        try {
+          window.location.href = url
+        } catch (err) {
+          console.log(err)
+        }
+      },
+      logoutOther (response, a, timeout) {
+        const crossAfter = this.crossAfter
+        let promises = []
+        for (let i in response.data.content.logoutUrls) {
+          if (this.$route.query.baseUrl !== response.data.content.logoutUrls[i]) {
+            promises.push(this.getJsonp(`${response.data.content.logoutUrls[i]}`))
+          }
+        }
+        Promise.all(promises).then(() => {
+          crossAfter(response.data.content.returnURL || 'http://www.ubtob.com', timeout)
+        }).catch(() => {
+          crossAfter(response.data.content.returnURL || 'http://www.ubtob.com', timeout)
+        })
       }
     }
   }

+ 1 - 1
server.js

@@ -3,7 +3,7 @@ const app = require('express')()
 const proxy = require('http-proxy-middleware')
 const cookiejar = require('cookiejar')
 const host = process.env.HOST || '127.0.0.1'
-const port = process.env.PORT || 80
+const port = process.env.PORT || 3001
 process.noDeprecation = true
 
 app.set('port', port)