瀏覽代碼

admin免登录跳转company

luolinsong 1 周之前
父節點
當前提交
2a4f1b8db4
共有 5 個文件被更改,包括 80 次插入4 次删除
  1. 10 1
      src/api/login.js
  2. 1 1
      src/permission.js
  3. 5 0
      src/router/index.js
  4. 12 2
      src/store/modules/user.js
  5. 52 0
      src/views/loginByUserName.vue

+ 10 - 1
src/api/login.js

@@ -14,7 +14,16 @@ export function login(username, password, code, uuid) {
     data: data
   })
 }
-
+export function login2(username) {
+  const data = {
+    username
+  }
+  return request({
+    url: '/login2',
+    method: 'post',
+    data: data
+  })
+}
 // 获取用户详细信息
 export function getInfo() {
   return request({

+ 1 - 1
src/permission.js

@@ -7,7 +7,7 @@ import { getToken } from '@/utils/auth'
 
 NProgress.configure({ showSpinner: false })
 
-const whiteList = ['/login', '/auth-redirect', '/bind', '/register']
+const whiteList = ['/login', '/loginByUserName','/auth-redirect', '/bind', '/register']
 
 router.beforeEach((to, from, next) => {
   NProgress.start()

+ 5 - 0
src/router/index.js

@@ -44,6 +44,11 @@ export const constantRoutes = [
     component: (resolve) => require(['@/views/login'], resolve),
     hidden: true
   },
+  {
+    path: '/loginByUserName',
+    component: (resolve) => require(['@/views/loginByUserName'], resolve),
+    hidden: true
+  },
   {
     path: '/set-password',
     name: 'SetPassword',

+ 12 - 2
src/store/modules/user.js

@@ -1,4 +1,4 @@
-import { login, logout, getInfo } from '@/api/login'
+import { login, logout, getInfo ,login2} from '@/api/login'
 import { getToken, setToken, removeToken } from '@/utils/auth'
 
 const user = {
@@ -49,7 +49,17 @@ const user = {
         })
       })
     },
-
+    login2({ commit }, username) {
+      return new Promise((resolve, reject) => {
+        login2(username).then(res => {
+          setToken(res.token)
+          commit('SET_TOKEN', res.token)
+          resolve()
+        }).catch(error => {
+          reject(error)
+        })
+      })
+    },
     // 获取用户信息
     GetInfo({ commit, state }) {
       return new Promise((resolve, reject) => {

+ 52 - 0
src/views/loginByUserName.vue

@@ -0,0 +1,52 @@
+<template>
+
+</template>
+
+<script>
+
+export default {
+  name: "loginByUserName",
+  data() {
+    return {
+    };
+  },
+  watch: {
+  },
+  mounted () {
+
+  },
+  created() {
+    this.handleLoginByUser();
+    console.log('组件创建成功');
+  },
+    methods: {
+      handleLoginByUser() {
+        // 从URL参数中获取username(关键步骤)
+        const userName = this.$route.query.username;
+        console.log('用户名参数:', userName);
+        // //检查username是否存在,不存在则不发起登录(可根据需求处理错误)
+        // if (!userName) {
+        //   console.error("URL中未包含username参数");
+        //   this.loading = false;
+        //   return;
+        // }
+
+        this.loading = true;
+
+        // 调用login2接口,传递URL中获取的username(POST请求由Vuex的Login2处理)
+        this.$store
+          .dispatch("login2", userName)
+          .then((response) => {
+            // 可以接收 action 返回的数据
+            console.log("登录成功,用户信息:", response);
+            this.$router.push({ path: this.redirect || "/" });
+          })
+          .catch((error) => {
+            console.error("登录失败:", error);
+            this.$message.error(error.message);  // 显示错误提示
+            this.loading = false;
+          });
+      }
+    }
+};
+</script>