Explorar o código

登录 登出 实现

James %!s(int64=4) %!d(string=hai) anos
pai
achega
6f045edc68
Modificáronse 7 ficheiros con 92 adicións e 50 borrados
  1. 7 1
      build/webpack.dev.conf.js
  2. 1 1
      index.html
  3. 23 20
      src/pages/list/index.vue
  4. 23 23
      src/pages/login/index.vue
  5. 1 1
      src/router/index.js
  6. 4 4
      src/util/http.js
  7. 33 0
      src/util/index.js

+ 7 - 1
build/webpack.dev.conf.js

@@ -42,7 +42,13 @@ const devWebpackConfig = merge(baseWebpackConfig, {
     quiet: true, // necessary for FriendlyErrorsPlugin
     watchOptions: {
       poll: config.dev.poll,
-    }
+    },
+    proxy: {
+      '/api/sso/user/login': {
+        target: 'https://test.4dkankan.com',
+        changeOrigin: true,
+      }
+    },
   },
   plugins: [
     new webpack.DefinePlugin({

+ 1 - 1
index.html

@@ -4,7 +4,7 @@
     <meta charset="utf-8">
     <meta name="viewport" content="width=device-width,initial-scale=1.0">
     <link rel="icon" type="image/png" sizes="32x32" href="static/favicon.png" class="keep">
-    <title>场景列表</title>
+    <title>场景转换列表</title>
   </head>
   <body>
     <div id="app"></div>

+ 23 - 20
src/pages/list/index.vue

@@ -94,26 +94,29 @@ export default {
       }
     },
     logout () {
-      this.$http({
-        method: 'get',
-        url: '/admin/logout',
-        headers: {
-          Authorization: window.localStorage.getItem('token')
-        }
-      }).then(res => {
-        if (res.code === 5001 || res.code === 5002) return
-        if (res.code === 0) {
-          window.localStorage.setItem('dcj_token', '')
-          this.$token = ''
-          this.$alert('退出成功', '提示', {
-            confirmButtonText: '确定',
-            callback: action => {
-              window.localStorage.setItem('menu', '')
-              this.$router.push('/login')
-            }
-          })
-        }
-      })
+      console.log('登出');
+      window.localStorage.setItem('cjt_token','')
+      this.$router.push('/login')
+      // this.$http({
+      //   method: 'get',
+      //   url: '/admin/logout',
+      //   headers: {
+      //     Authorization: window.localStorage.getItem('token')
+      //   }
+      // }).then(res => {
+      //   if (res.code === 5001 || res.code === 5002) return
+      //   if (res.code === 0) {
+      //     window.localStorage.setItem('cjt_token', '')
+      //     this.$token = ''
+      //     this.$alert('退出成功', '提示', {
+      //       confirmButtonText: '确定',
+      //       callback: action => {
+      //         window.localStorage.setItem('menu', '')
+      //         this.$router.push('/login')
+      //       }
+      //     })
+      //   }
+      // })
     }
 
   }

+ 23 - 23
src/pages/login/index.vue

@@ -1,7 +1,7 @@
 <template>
   <div class="l-con">
     <div class="l-top">
-      <h1>场景列表登录</h1>
+      <h1>场景转换列表登录</h1>
     </div>
     <div class="l_center">
       <vcenter>
@@ -24,11 +24,11 @@
               label-width="100px"
               class="demo-ruleForm"
             >
-              <el-form-item prop="username">
+              <el-form-item prop="phoneNum">
                 <el-input
-                  type="username"
-                  placeholder="账号"
-                  v-model="ruleForm2.username"
+                  type="phoneNum"
+                  placeholder="手机号码"
+                  v-model="ruleForm2.phoneNum"
                   auto-complete="off"
                 ></el-input>
               </el-form-item>
@@ -65,6 +65,8 @@
 
 <script>
 import vcenter from '@/components/vcenter'
+import {encodeStr} from '@/util'
+import { Base64 } from 'js-base64'
 export default {
   name: 'login',
   components: {
@@ -73,9 +75,9 @@ export default {
   data () {
     var validateUser = (rule, value, callback) => {
       if (!value) {
-        return callback(new Error('用户名不能为空'))
+        return callback(new Error('手机号码不能为空'))
       } else if (value.length < 3) {
-        callback(new Error('用户名不合法'))
+        callback(new Error('手机号码不合法'))
       } else {
         callback()
       }
@@ -95,11 +97,11 @@ export default {
       fullscreenLoading: false,
       checked: true,
       ruleForm2: {
-        username: '',
+        phoneNum: '',
         pass: ''
       },
       rules2: {
-        username: [
+        phoneNum: [
           {
             validator: validateUser,
             trigger: 'blur'
@@ -116,32 +118,30 @@ export default {
   },
 
   mounted () {
-    this.ruleForm2.username = window.localStorage.getItem('dcj_username') || ''
-    this.ruleForm2.pass = window.localStorage.getItem('dcj_pass') || ''
+    this.ruleForm2.phoneNum = window.localStorage.getItem('cjt_phoneNum') || ''
+    this.ruleForm2.pass = window.localStorage.getItem('cjt_pass') || ''
   },
   methods: {
     async login () {
-      let {username, pass} = this.ruleForm2
+      let {phoneNum, pass} = this.ruleForm2
       this.fullscreenLoading = true
-
-      let res = await this.$http.post('/admin/login', {
-        username,
-        password: pass
+      let res = await this.$http.post('/api/sso/user/login', {
+        phoneNum,
+        password: encodeStr(Base64.encode(pass)),
       })
       this.fullscreenLoading = false
-
       if (res.code === 0) {
         let data = res.data
-        window.localStorage.setItem('dcj_token', data.token)
+        window.localStorage.setItem('cjt_token', data.token)
         if (this.checked) {
           window.localStorage.setItem(
-            'dcj_username',
-            username
+            'cjt_phoneNum',
+            phoneNum
           )
-          window.localStorage.setItem('dcj_pass', pass)
+          window.localStorage.setItem('cjt_pass', pass)
         } else {
-          window.localStorage.setItem('dcj_username', '')
-          window.localStorage.setItem('dcj_pass', '')
+          window.localStorage.setItem('cjt_phoneNum', '')
+          window.localStorage.setItem('cjt_pass', '')
         }
         this.$router.push('/')
       } else {

+ 1 - 1
src/router/index.js

@@ -26,7 +26,7 @@ let router = new Router({
 
 router.beforeEach((to, from, next) => {
   next()
-  let token = window.localStorage.getItem('dcj_token')
+  let token = window.localStorage.getItem('cjt_token')
   if (token) {
     if (to.path === '/login') {
       next({ path: '/' })

+ 4 - 4
src/util/http.js

@@ -3,7 +3,7 @@ import Vue from 'vue'
 import router from '../router'
 
 var isProduction = process.env.NODE_ENV === 'production'
-const serverName = isProduction ? '' : 'http://47.107.252.54:8105'
+const serverName = isProduction ? '' : ''
 // const serverName = isProduction ? '' : 'http://192.168.0.135:8105'
 
 const vue = new Vue()
@@ -17,7 +17,7 @@ axios.interceptors.request.use(
     if (config.method === 'post') {
       config.data.rnd = Math.random()
     }
-    config.headers['token'] = window.localStorage.getItem('dcj_token')
+    config.headers['token'] = window.localStorage.getItem('cjt_token')
 
     return config
   }, function (error) {
@@ -43,8 +43,8 @@ axios.interceptors.response.use(
         })
         break
       case 5001:
-        if (window.localStorage.getItem('dcj_token')) {
-          window.localStorage.setItem('dcj_token', '')
+        if (window.localStorage.getItem('cjt_token')) {
+          window.localStorage.setItem('cjt_token', '')
           vue.$alert('登录状态失效,请重新登录', '提示', {
             confirmButtonText: '确定',
             callback: function () {

+ 33 - 0
src/util/index.js

@@ -0,0 +1,33 @@
+function randomWord (randomFlag, min, max) {
+    let str = ''
+    let range = min
+    let arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z']
+    // 随机产生
+    if (randomFlag) {
+      range = Math.round(Math.random() * (max - min)) + min
+    }
+    for (var i = 0; i < range; i++) {
+      let pos = Math.round(Math.random() * (arr.length - 1))
+      str += arr[pos]
+    }
+    return str
+  }
+module.exports = {
+    encodeStr: function (str, strv = '') {
+        const NUM = 2
+        const front = randomWord(false, 8)
+        const middle = randomWord(false, 8)
+        const end = randomWord(false, 8)
+
+        let str1 = str.substring(0, NUM)
+        let str2 = str.substring(NUM)
+
+        if (strv) {
+            let strv1 = strv.substring(0, NUM)
+            let strv2 = strv.substring(NUM)
+            return [front + str2 + middle + str1 + end, front + strv2 + middle + strv1 + end]
+        }
+
+        return front + str2 + middle + str1 + end
+    }
+}