Ver Fonte

添加 login/proxy代理页面

yangc há 8 anos atrás
pai
commit
0206e81519
1 ficheiros alterados com 56 adições e 0 exclusões
  1. 56 0
      pages/login/proxy.vue

+ 56 - 0
pages/login/proxy.vue

@@ -0,0 +1,56 @@
+<template>
+  <!-- Login 代理页面 -->
+  <div>
+  </div>
+</template>
+<script>
+
+export default {
+  layout: 'login',
+  mounted () {
+    this.crossBefore()
+  },
+  methods: {
+    async crossBefore () {
+      try {
+        let { data } = await this.$http.get('/login/crossBefore')
+        const params = data || {}
+        this.proxyLogin(params.askUrl, params.askData, params.loginUrl)
+      } catch (err) {
+        this.$router.replace('/')
+        console.log(err)
+      }
+    },
+    proxyLogin (askUrl, askData, loginUrl) {
+      const crossAfter = this.crossAfter
+      this.$jsonp(`${askUrl}?askData=${askData}`, function (err, data) {
+        if (err) throw err
+
+        // 判断是否已经登录
+        if (data.error) {
+          // 如果未登录,跳转登录界面
+          window.location.href = loginUrl
+        } else {
+          crossAfter(data.content)
+        }
+      })
+    },
+    async crossAfter (content) {
+      if (!content && content === '') {
+        this.$router.replace('/')
+      }
+
+      try {
+        let { data } = await this.$http.post('/login/crossAfter', {}, { params: { replyTxt: content } })
+
+        this.$store.dispatch('loadUserInfo', data)
+
+        window.location.href = data.returnUrl || '/'
+      } catch (err) {
+        this.$router.replace('/')
+        console.log(err)
+      }
+    }
+  }
+}
+</script>