antd-vue-admin——通过链接跳过登录页直接进入系统内部——基础积累

news2024/12/25 10:24:41

最近在写后台管理系统,遇到一个需求,就是从系统A带参数可以直接进入到系统B内部。不通过系统B的登录页面进行登录。

一般系统的登录,都需要用户名和密码等参数,然后获取到token信息,最后进入到系统内部。

下面介绍具体实现方式:

1.antd-vue-admin系统——login添加登录新页面

在login文件夹中添加loginOA.vue文件
在这里插入图片描述

2.loginOA.vue文件内容如下:

html部分:

<template>
  <div></div>
</template>

js部分:

<script>
import { oaLogin } from '@/services/user';//登录方法,这个要根据后端提供的方法来处理
import {
  setAuthorization,
  checkAuthorization,
  removeAuthorization,
} from '@/utils/request';
import { parseUrlParams } from '@/utils/util';
export default {
  name: 'LoginOA',
  data() {
    return {};
  },
  watch: {
    $route: {
      handler: function(val, oldVal) {
        this.onSubmit();
      },
      // 深度观察监听
      deep: true,
      immediate: true,
    },
  },
  methods: {
    onSubmit() {
      removeAuthorization();
      var obj = parseUrlParams(window.location.href);
      var token = (obj.token && decodeURIComponent(obj.token)) || '';
      var iv = (obj.iv && decodeURIComponent(obj.iv)) || '';
      if (!token || !iv) {
        this.$message.error('请从无极OA系统登录');
        return;
      }
      oaLogin({
        token,
        iv,
      })
        .then((res) => {
          if (res.code == 0) {
            this.$message.error(`${res.msg}${res.data ? ',' + res.data : ''}`);
          } else {
            this.afterLogin(res);
          }
        })
        .catch(() => {
        });
    },
    afterLogin(res) {
      const loginRes = res;
      if (loginRes) {
        setAuthorization({
          token: loginRes.access_token,
          expireAt: new Date(new Date().getTime() + loginRes.expires_in),
        });
        if (checkAuthorization()) {
          this.$store.dispatch('account/refreshPermissions', (res) => {
            if (res == 'success') {
              this.$message.success('登录成功', 3);
              this.$router.push('/dashboard');
            }
          });
        }
      }
    },
  },
};
</script>

parseUrlParams 方法如下:

/**
 * 解析 url 中的参数
 * @param url
 * @returns {Object}
 */
export function parseUrlParams(url) {
  const params = {};
  if (!url || url === '' || typeof url !== 'string') {
    return params;
  }
  const paramsStr = url.split('?')[1];
  if (!paramsStr) {
    return params;
  }
  const paramsArr = paramsStr.replace(/&|=/g, ' ').split(' ');
  for (let i = 0; i < paramsArr.length / 2; i++) {
    const value = paramsArr[i * 2 + 1];
    params[paramsArr[i * 2]] =
      value === 'true' ? true : value === 'false' ? false : value;
  }
  return params;
}

3.login文件夹中的index.js文件内容如下:

import LoginOA from './LoginOA';
import Login from './Login';
export default {
  LoginOA,
  Login,
};

4.在router文件夹中的config.js中添加LoginOA路由

{
  path: '/loginOA',
  name: '登录页OA',
  component: () => import('@/pages/login/LoginOA'),
},

5.将loginOA添加到白名单中——router/index.js中添加

// 不需要登录拦截的路由配置
const loginIgnore = {
  names: ['404', '403'], //根据路由名称匹配
  paths: [
    '/login',
    '/loginOA',
  ], //根据路由fullPath匹配

完成!!!多多积累,多多收获!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/531356.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

5-16SQL每日一题

如下两张表&#xff0c;G0516A和G0516B 要求G0516B按顺序与G0516A的第一个WEEK1依次有序的组合&#xff0c;直到依次组合完毕&#xff0c;预计结果如下&#xff1a; 测试数据&#xff1a; CREATE TABLE G0516A ( WEEKS VARCHAR(10) ) INSERT INTO G0516A VALUES (‘WEEK1…

Socket请求和Http请求区别和场景

我们在开发过程中遇到http请求和socket请求。大部分前后交互都是通过http请求的方式&#xff0c;那socket请求怎么使用&#xff0c;什么情况下使用呢&#xff1f; 基本概念 http请求&#xff1a;基于http协议的soap协议&#xff0c;常见的http数据请求方式有get和post&#xf…

OpenCV实现图像的缩放几何变换,图像金字塔,高斯不同

1.前言 实现图像的放大&#xff08;zoom in&#xff09;和缩小&#xff08;zoom out&#xff09;主要通过两种途径&#xff1a; 几何变换。图像金字塔。 2.几何变换 通过几何变换实现图像放大和缩小功能主要是通过OpenCV的resize函数&#xff1a; 1 2 3 4 5 6 7 8void resi…

二.深度学习yolov5 比特家异构计算 训练与转模型01

(备份笔记 仅记录) 走国产化路上 要离开老黄的NVIDIA了&#xff0c;现在摸索下比特家的异构计算 yolo还停在v3的阶段 因为之前v3就已经够产品化去用了。这次也走下yolov5吧&#xff01; 1.yolov5环境搭建 2.yolov5模型训练 3.yolov5模型测试 4.模型做truck 5.模型转换为…

【六袆 - Design Pattern】Strategy Pattern;策略模式;

JDK8源码使用的策略模式列举 java.util.comparator接口用于对对象进行排序。Comparator接口的compare()方法将两个对象作为参数&#xff0c;并返回一个整数值&#xff0c;表示这两个对象的相对顺序。比较器接口有许多不同的实现&#xff0c;每个实现都有不同的排序算法。例如&a…

OpenPCDet系列 | 5.4 PointPillars算法——AnchorHeadSingle模型预测头模块

文章目录 AnchorHeadTemplate模块1. AnchorGenerator2. ResidualCoder3. AxisAlignedTargetAssigner AnchorHeadSingle模块1. AnchorHeadSingle初始化2. AnchorHeadSingle训练前向传播3. AnchorHeadSingle测试前向传播 OpenPCDet的整个结构图&#xff1a; PointPillars算法属…

人人可用的开源数据可视化分析工具

大家好&#xff0c;我是互联网架构师&#xff01; 在互联网数据大爆炸的这几年&#xff0c;各类数据处理、数据可视化的需求使得 GitHub 上诞生了一大批高质量的 BI 工具。 借助这些 BI 工具&#xff0c;我们能够大幅提升数据分析效率、生成更高质量的项目报告&#xff0c;让用…

UE4/5中DataTable数据表的使用

我们在UE中经常要对配置数据进行编辑&#xff0c;用好UE自己的DataTable自然对日常使用有所帮助。 1.蓝图使用流程 1.1 DataTable创建 使用数据表首先得创建自定义结构体&#xff0c;这样才好定义每一行的格式&#xff0c;例如这里创建如下&#xff1a; 然后右键选择创建Da…

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型

LiveGBS流媒体平台GB/T28181功能-NVR硬件下级平台级联上来的通道如何过滤过滤通道类型 1、上来的通道多了怎么办?2、过滤通道类型2.1、设备单独过滤2.2、全局过滤通道类型 3、过滤指定通道国标编号4、搭建GB28181视频直播平台 1、上来的通道多了怎么办? 下级平台或是NVR设备…

个人黄金投资好做吗?黄金投资交易优势体现在哪些方面

黄金的高保值性深受市场喜爱&#xff0c;它兼具商品和货币的双重属性。不仅实物黄金备受青睐&#xff0c;就连黄金投资交易也受到市场喜爱。黄金投资交易优势主要有哪些要点呢&#xff1f; 黄金投资交易优势一、稀有性 黄金的价值是固有的、内在的&#xff0c;具有千年不朽的稳…

跟庄买股票得新技巧(2023.05.16)(第二弹)

北向资金&#xff08;也叫聪明的钱&#xff09;&#xff0c;它如何潜伏的&#xff08;上周&#xff09; 设么&#xff0c;你投诉大叔不写代码&#xff1f;好吧给你北向资金的代码 { 选股条件&#xff1a; 北向资金流入是昨天的两倍以上 } 百分比:REF(GPJYVALUE(6,1,1),1)>…

HttpClient5如何设置代理

文章目录 说明原始HttpClient代理HttpClient总结 说明 在这篇文章中会对HttpClient5如何进行代理进行说明&#xff0c;我的HttpClient版本是5.2.1。在进行代理之前请先准备好代理服务器。 原始HttpClient 下面是没有进行代理设置的代码&#xff0c;尝试去访问openai接口 Tes…

监控室值班人员脱岗睡岗识别算法 yolov7

监控室值班人员脱岗睡岗识别算法基于Yolov7深度学习神经网络算法&#xff0c;监控室值班人员脱岗睡岗识别算法模型可以7*24小时不间断自动人员是否在工位上&#xff08;脱岗睡岗玩手机&#xff09;&#xff0c;若人员没有在工位&#xff0c;系统则立即抓拍告警&#xff0c;算法…

GBASE南大通用携手长亮科技 重磅推出金融数据仓库联合解决方案

随着数字化转型进程深入&#xff0c;金融企业对数据赋能的需求更加迫切&#xff0c;如何融合内外部业务数据&#xff0c;实现数据纵向贯通、横向穿透&#xff0c;让数据资源真正成为业务发展的新引擎&#xff1b;同时&#xff0c;信创浪潮风起云涌&#xff0c;数据库作为底层软…

深度学习语义分割篇——FCN源码解析篇

&#x1f34a;作者简介&#xff1a;秃头小苏&#xff0c;致力于用最通俗的语言描述问题 &#x1f34a;往期回顾&#xff1a;深度学习语义分割篇——FCN原理详解篇 &#x1f34a;近期目标&#xff1a;写好专栏的每一篇文章 &#x1f34a;支持小苏&#xff1a;点赞&#x1f44d;&…

分享Python采集66个菜单导航,总有一款适合您

分享Python采集66个菜单导航&#xff0c;总有一款适合您 Python采集的66个菜单导航下载链接&#xff1a;https://pan.baidu.com/s/11ElCiEa6OesmPxY6U9320w?pwdvdok 提取码&#xff1a;vdok jQuery手风琴滑动下拉菜单展开收缩代码 JS树形结构下拉列表菜单选择代码 简单的…

人脸识别2:InsightFace实现人脸识别Face Recognition(含源码下载)

目录 1. 前言 2. 项目安装 3. 人脸识别系统 &#xff08;1&#xff09;人脸检测和关键点检测 &#xff08;2&#xff09;人脸校准 &#xff08;3&#xff09;人脸特征提取 &#xff08;4&#xff09;人脸比对(1:1) &#xff08;5&#xff09;人脸搜索(1:N) &#xff08…

将数组中的“缺失值”“正无穷大”“负无穷大”替换为指定的数值np.nan_to_num()

【小白从小学Python、C、Java】 【计算机等考500强证书考研】 【Python-数据分析】 将数组中的“缺失值”“正无穷大” “负无穷大”替换为指定的数值 np.nan_to_num() 选择题 下列说法错误的是? import numpy as np a np.array([11,-22,np.nan,np.inf,-np.inf]) print(&q…

Cefsharp113.1.40版本功能体验(支持MP3,不支持H264)-winform

下载包本地更新:NuGet Gallery | CefSharp.WinForms 113.1.40 因许可问题,不支持H264/AAC。Due to licensing issues default builds do not support proprietary codecs like H264/AAC, sites like Netflix/Twitter/Instagram/Facebook/Spotify/Apple Music wont play vide…

MS CoCo数据集

一、前言 Ms CoCo数据集是一个非常大型且常用的数据集&#xff0c;可以做的任务有目标检测、图像分割、图像描述等 数据集地址&#xff1a;链接 描述数据集的论文地址&#xff1a;链接 有一点需要注意&#xff1a;数据集的物体类别分为80类和91类两种&#xff0c;其中object80类…