浪花 - 响应拦截器(强制登录)

1. 配置响应拦截器

import axios from 'axios';const myAxios = axios.create({baseURL: 'http://localhost:8080/api/',
});myAxios.defaults.withCredentials = true;// 请求拦截器
myAxios.interceptors.request.use(function (config) {// Do something before request is sentconsole.log("发送请求啦...");return config;
}, function (error) {// Do something with request errorreturn Promise.reject(error);
});// 响应拦截器
myAxios.interceptors.response.use(function (response) {// Do something with response dataconsole.log("接收到请求啦...");return response.data;
}, function (error) {// Do something with response errorreturn Promise.reject(error);
});export default myAxios;

2. 强制跳转到登录页面

  • 有些页面只允许用户登录后查看
  • 未登录用户没有权限,后端返回 40100
  • 前端接收到 40100 则跳转到登录页面,要求用户进行登录

// 响应拦截器
myAxios.interceptors.response.use(function (response) {// Do something with response dataconsole.log("接收到请求啦...");// 未登录,强制跳转到登录页if (response?.data?.code === 40100) {const redirectUrl = window.location.href;window.location.href = `/user/login?redirect${redirectUrl}`;}return response.data;
}, function (error) {// Do something with response errorreturn Promise.reject(error);
});export default myAxios;

3. 登录成功跳转到登录之前的页面

  • 记录当前页面,拼接到 url 的 redirect 后面

  • 登录成功,取出 redirect,重定向到 redirect
// 提交登录表单信息
const onSubmit = async (values) => {const res = await myAxios.post('/user/login', {userAccount: userAccount.value,userPassword: userPassword.value,})console.log(res, "用户登录");if (res.code === 0 && res.data) {// 返回到之前的页面const redirectUrl = route.query?.redirect as string ?? '/';window.location.href=redirectUrl;} else {Toast.fail("登录失败");}
};

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Web3 游戏开发者的数据分析指南

作者:lesleyfootprint.network 在竞争激烈的 Web3 游戏行业中,成功不仅仅取决于游戏的发布,还需要在游戏运营过程中有高度的敏锐性,以应对下一次牛市的来临。 人们对 2024 年的游戏行业充满信心。A16Z GAMES 和 GAMES FUND ONE …

SpringBoot activemq收发消息、配置及原理

SpringBoot集成消息处理框架 Spring framework提供了对JMS和AMQP消息框架的无缝集成,为Spring项目使用消息处理框架提供了极大的便利。 与Spring framework相比,Spring Boot更近了一步,通过auto-configuration机制实现了对jms及amqp主流框架…

Java基础实战01-数字华容道制作

一、数字华容道 1.素材准备: 网上搜~,我这也是网上找的(免费资源找找就行) 2.目标实现 游戏规则就不说了,都玩过~,自己知道就好 (1)窗体的绘制 使用创建一个窗口类(Window&…

网络安全热门岗位大盘点

网络安全已成为当今社会不可或缺的重要领域,国家和企业越来越重视网络安全,众多厂商也纷纷加大网络安全岗位的招聘力度。如果你对网络安全感兴趣,不妨了解一下这些热门岗位! 🎯首席信息官(CISO)…

极限【高数笔记】

【分类】分为了两大类,一个是数列的极限,一个是函数的极限 【数列的极限】 1.定义: 简单来讲,就是,当n无限趋近于无穷时,数列{an}无限趋近一个常数A,此时,常数A就是它们此时情况下的…

最新技术实战 | 无视杀软使用远控工具进行横向移动Tips

最新技术实战 | 无视杀软使用远控工具进行横向移动Tips。 杀软是什么意思?杀软是杀毒软件的简称,取的杀毒首字与软件首字组合而成,将杀毒软件简要的称之为杀软,所以,杀软的意思就是杀毒软件,专注于信息领域…

taskflow 源码阅读笔记-1

之前写了一篇介绍Taskflow的短文:传送门 Taskflow做那种有前后依赖关系的任务管理还是不错的,而且他的源码里运用了大量C17的写法,觉得还是非常值得学习的,因此决定看一下他的源码,这里顺便写了一篇代码学习笔记。 概…

【C++中的STL】函数对象

函数对象 函数对象概念谓词概念 内建函数对象算术仿函数关系仿函数逻辑仿函数(基本用不到) 函数对象概念 重载函数调用操作符的类,其对象常称为函数对象,函数对象使用重载的()时。行为类似函数调用,也叫仿函数。 函数…

java/node代码 破解“滑动验证码”的移动距离

1.直接上代码结论 import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URL;p…

svg 属性详解:填充与边框

svg 属性详解:填充与边框 1 颜色和透明度2 填充规则 fill-rule3 边框样式3.1 stroke-width3.2 stroke-linecap3.3 stroke-linejoin3.4 stroke-dasharray 1 颜色和透明度 图像都有颜色,svg 中可以使用属性 fill 和 stroke 来修改图形的颜色。fill 属性设置…

【RSA加密算法进行数字签名并验签--C++】

RSA加密算法进行数字签名并验签--C 前言RSA加密算法什么是RSA加密算法公钥加密私钥解密or私钥加密公钥解密?公钥加密,私钥解密(常见用法):私钥加密,公钥解密(较少用法,本次使用&…

自动驾驶的决策层逻辑

作者 / 阿宝 编辑 / 阿宝 出品 / 阿宝1990 自动驾驶意味着决策责任方的转移 我国2020至2025年将会是向高级自动驾驶跨越的关键5年。自动驾驶等级提高意味着对驾驶员参与度的需求降低,以L3级别为界,低级别自动驾驶环境监测主体和决策责任方仍保留于驾驶…