后端访问sso后,如何返回前端vue页面(后端redirect跳转,vue代理,axios带参)
由于项目要加上公司的sso,出现的一系列问题,找到解决办法,在此记录一下。可能并不适合其他项目,给个参考。
前提:
前端是vue.js,后端springboot
sso配置需要增加公司自己的maven依赖和yml配置。
启动项目后,首先访问后端/index接口,进入sso拦截,访问sso页面;登陆成功后返回goto指向的url(也就是index接口的return内容),附上/index接口代码:
@GetMapping(value={"/dist","dist/index"})
public String index(HttpServletRequest request) {
User user = UserUtils.getCurrentUser(request);
request.getSession().setAttribute("user", user);
return "redirect:http://192.168.0.XXX:8081"; //开发环境
// return "redirect:/loginShow"; //正式环境
}
@RequestMapping("/loginShow")
public ModelAndView loginShow(HttpServletRequest request) {
ModelAndView modelAndView = new ModelAndView("redirect:/dist/index.html");
return modelAndView;
}
(其中loginShow方法是用来解决url显示token参数问题的,加上之后sso跳转url的参数隐藏)。
这时,前端访问接口报错,跨域问题。
如果是vue2.0,可以在axios的封装类之中加上一句话:
axios.defaults.withCredentials = true;
加在axios.create(...)之前,这句话的作用是访问接口时带着参数,比如token、session。
如果是vue3.0,还需要在vue.config.js中的module.exports里面增加proxy代理,如果没有vue.config.js,可以创建一个。代理代码如下:
devServer: {
proxy: {
'/api': {
target: 'http://192.168.0.XXX:8080/XXXXXX',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
}
然后,请求基础路径需要都改成和上面的路径一致,比如这里写的'/api',那么项目中baseUrl的dev或pro路径也要写成'/api'(可以自定义,不用非叫'api',只要一致就好)。
后端访问sso后,如何返回前端vue页面(后端redirect跳转,vue代理,axios带参)的更多相关文章
- 微信扫码登陆,qq登陆,微博登陆等第三方登陆成功后返回原来的页面并进行跳转
原理很简单,主要是利用到window.open的第二个属性,name 前端: 原来的网页给window命名为 window.name="single" window.open(“第 ...
- 解决session失效之后登陆后重新返回之前的页面
在全局拦截器设置保存之前的url存入session中 登陆之后的地址再重session中存 request只用作一次请求 如果页面跳转几次的话原来的url就不存在了建议存在session @Overr ...
- SpringBoot 和Vue前后端分离入门教程(附源码)
作者:梁小生0101 juejin.im/post/5c622fb5e51d457f9f2c2381 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计 ...
- spring boot + vue + element-ui全栈开发入门——前端列表页面开发
一.页面 1.布局 假设,我们要开发一个会员列表的页面. 首先,添加vue页面文件“src\pages\Member.vue” 参照文档http://element.eleme.io/#/zh-CN ...
- 【原】移动端vue页面点透事件 - 分析与解决
近期项目遇到了vue页面事件被带到下一个页面的问题,也就是我们常说的点透事件,主要表现在android机器上,花了不少时间折腾,简单做下总结~ vue页面之间的切换通过Vue Router的route ...
- URL不变的情况下,最实用的vue刷新当前页面,provide / inject 组合 方式实现vue页面刷新
原文:https://blog.csdn.net/Dream_xun/article/details/83024487 其他参考:https://blog.csdn.net/liyunkun888/a ...
- Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置
前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...
- Django:前后端分离后联调给前端传数据
实现前后端分离后,有了下面几点改变: 1.服务器一分为二,前后端分别部署,静态资源放在前端服务器,业务代码放在后的服务器 2.前端服务器需要接收Http请求(一般使用node.js) 3.前端服务器需 ...
- 后端统一处理返回前端日期LocalDateTime格式化去T,Long返回前端损失精度问题
一.前言 我们在实际开发中肯定会遇到后端的时间传到前端是这个样子的:2022-08-02T15:43:50 这个时候前后端就开始踢皮球了,!! 后端说:前端来做就可! 前端说:后端来做就可! 作为一名 ...
随机推荐
- C# API 获取系统DPI缩放倍数跟分辨率大小
原文:C# API 获取系统DPI缩放倍数跟分辨率大小 using System; using System.Drawing; using System.Runtime.InteropServices ...
- Win10《芒果TV》商店版2016-2017春节大礼,每日前100名用户免费领取7天VIP
告别2016,喜迎2017,鸡年大吉,春节期间,每天登录Win10<芒果TV>商店版的前100位用户可领取一张芒果TV会员7天体验卡,先到先得. 芒果TV会员权益: 1.全站免广告 2.自 ...
- 零元学Expression Blend 4 - Chapter 18 用实例了解互动控制项「CheckBox」II
原文:零元学Expression Blend 4 - Chapter 18 用实例了解互动控制项「CheckBox」II 延续上一章的CheckBox教学,本章将以实作继续延伸更灵活的运用CheckB ...
- 我的第一个Chrome插件:天气预报应用
1.Chrome插件开发基础 开发Chrome插件很简单,只要会基本的前台技术HTML.CSS.JS就可以开发了. Chrome插件一般包括两个HTML页面background和popup. ...
- Codility--- Distinct
Task description Write a function class Solution { public int solution(int[] A); } that, given a zer ...
- 从零开始人工智能AI(一)-k-nn-矩阵
参考资料: https://baike.baidu.com/item/%E7%9F%A9%E9%98%B5/18069?fr=aladdin http://blog.csdn.net/c4064957 ...
- java-mysql(2) Prepared statement
上一篇学习了java如何链接配置mysql,这篇学习下java如何处理sql预处理语句(PreparedStatement),首先是一个sql预处理的例子: package core; import ...
- 分布式自增ID算法snowflake (Java版)
概述 分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种 ...
- CSS样式规范
一般团队都有对CSS样式的规范,因为只有写的规范些,维护层本低,易懂.我们开发并不一次性的,往往都是要迭代的,如果这次随便写,下次迭代的时候将付出高昂的代价.而团队的规范一般都大同小异,往往都包含一下 ...
- epoll模型的探索与实践
我们知道nginx的效率非常高,能处理上万级的并发,其之所以高效离不开epoll的支持, epoll是什么呢?,epoll是IO模型中的一种,属于多路复用IO模型; 到这里你应该想到了,select, ...