Jelajahi Sumber

快速登录

root 3 tahun lalu
induk
melakukan
36b423f48f

+ 11 - 0
src/api/user.js

@@ -10,6 +10,17 @@ export function login(data, pageId = '') {
   })
 }
 
+export function backendQuickLogin(params) {
+  let url = '/v1/oauth/login-by-backend'
+  return request({
+    url,
+    method: 'post',
+    data: {
+      ...params
+    }
+  })
+}
+
 export function isLoginVerify(data) {
   return request({
     url: '/v1/oauth/is-login-verify',

+ 0 - 0
src/assets/user_images/avatar.png


+ 1 - 1
src/permission.js

@@ -9,7 +9,7 @@ import usersInfo from '@/utils/usersInfo'
  
 NProgress.configure({ showSpinner: false }) // NProgress Configuration
 
-const whiteList = ['/login', '/auth-redirect'] // no redirect whitelist
+const whiteList = ['/login', '/auth-redirect', '/login-by-backend'] // no redirect whitelist
 
 router.beforeEach(async(to, from, next) => {
   // start progress bar

+ 5 - 0
src/router/index.js

@@ -61,6 +61,11 @@ export const constantRoutes = [
     component: () => import('@/views/login/auth-redirect'),
     hidden: true
   },
+  {
+    path: '/login-by-backend', 
+    component: () => import('@/views/login/login-by-backend'), 
+    name: 'login-by-backend'
+  },
   {
     path: '/404',
     component: () => import('@/views/error-page/404'),

+ 21 - 1
src/store/modules/user.js

@@ -1,4 +1,4 @@
-import { login, logout, getInfo, isLoginVerify, getUserInfo, getBaseInfo, getMessageData } from '@/api/user'
+import { login, logout, getInfo, isLoginVerify, getUserInfo, getBaseInfo, getMessageData, backendQuickLogin } from '@/api/user'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 import router, { resetRouter } from '@/router'
 import usersInfo from '@/utils/usersInfo'
@@ -60,6 +60,26 @@ const actions = {
       })
     })
   },
+  // 快速登录
+  backendQuickLogin({ commit }, params) {
+    return new Promise((resolve, reject) => {
+      let postParams = params
+      backendQuickLogin(postParams).then(response => {
+        // 更新本地accessToken
+        usersInfo.updateLoginAllInfo(response.data)
+        commit('SET_TOKEN', response.data.accessToken)
+        // setToken(response.data.accessToken)
+        commit('SET_ROLES', ['admin'])
+        commit('SET_NAME', 'userName')
+        commit('SET_AVATAR', 'avatar')
+        commit('SET_INTRODUCTION', 'introduction')
+        resolve()
+      }).catch(error => {
+        usersInfo.clear()
+        reject(error)
+      })
+    })
+  },
   isLoginVerify( { commit }, data ) {
     return new Promise((resolve, reject) => {
       isLoginVerify({userName: data.userName}).then(response => {

+ 0 - 0
src/utils/usersInfo.js


+ 71 - 0
src/views/login/login-by-backend.vue

@@ -0,0 +1,71 @@
+<template>
+  <div>
+  
+  </div>
+</template>
+<script>
+import tool from '@/utils/tool'
+import usersInfo from '@/utils/usersInfo'
+
+export default {
+    name: 'login-by-backend',
+    data () {
+        return {
+        messageBox: null,
+        }
+    },
+    mounted () {
+        this.messageBox = this.$message('Please wait while logging in...')
+        this.handleLogin()
+    },
+    methods: {
+        handleLogin() {
+        // 清空会员之前的登录信息
+        usersInfo.clear()
+        // 建立新的登录信息
+        let params = tool.parseURL(window.location.href).params
+        this.$store.dispatch('user/backendQuickLogin', params)
+            .then(() => {
+                return this.$store.dispatch('user/getUserInfo', {})
+            })
+            .then(() => {
+                return this.$store.dispatch('user/getBaseInfo', {})
+            }).then(() => {
+                this.$router.push('dashboard/index')
+            }).catch(error => {
+                // this.$message.error(error.message)
+            })
+        },
+    }
+}
+</script>
+  
+  <style>
+    .login-wrapper {
+      /* background: url(../../static/img/login-register.jpg) center center/cover no-repeat !important; */
+      width: 100%;
+      height: 100%;
+      position: fixed;
+    }
+  
+    .login-box {
+      background: #fff;
+      width: 400px;
+      margin: 10% auto 0;
+    }
+  
+    .white-box {
+      background: #fff;
+      padding: 25px;
+      margin-bottom: 15px;
+    }
+  
+    .white-box .white-box-title {
+      margin: 0 0 12px;
+      font-weight: 500;
+      text-transform: uppercase;
+      font-size: 20px;
+      line-height: 30px;
+    }
+  </style>
+