系统采用jeeplus框架(ssm+redis+shiro+mongodb+redis),默认是做了JSP未做前后端分离,由于业务需要已经多终端使用的需求(H5、小程序等),需要实现前后端分离。但是由于需要同时保留原版的未做前后端分离的UI 和新版做了前后端分离的UI,所以采用单独提出一套接口做封装供前端VUE使用。

原先使用时有一个业务场景及客户可以通过其它系统跳转到我们系统不需要登录,但是由于是其它客户系统不好做SSO加上工期紧,我们这次采用客户系统在登录前先发送一次请求同步用户信息到我们系统,然后我们进行模拟登录成功后产生一个token返回客户系统,系统拿到token后再次调用登录接口,我们系统验证token有效后完成用户登录。

在前后端分离的框架前端采用了ant design vue版本,前端代码使用nginx做服务器,当客户系统需要登录时,有系统验证用户信息然后重定向到vue前端服务。遇到的问题是,当从后端tomcat容器重定向到nginx中,该死的url被添加了jessionid参数导致无法识别,显示404,返回参数如下:

http://demo.zzxes.com.cn/ems/#/;JSESSIONID=46ded843b141471c930d95cac006e3d9#/?expoid=7e37cf45f131428ab6b6ed0dcc3f02d4&excompanyType=2

  vue router 默认把#后面的参数当了路由地址,所以无法访问,于是开始漫长的旅程。

方案一:

  既然是路由的问题,第一想法是把默认的HASH模式修改为HISTORY模式,于是得到一下返回结构:

http://demo.zzxes.com.cn/ems/;JSESSIONID=46ded843b141471c930d95cac006e3d9#/?expoid=7e37cf45f131428ab6b6ed0dcc3f02d4&excompanyType=2

  #的路由问题解决了,但是jessionid又被当成了请求地址,一样无法访问404,该死的404,方案一失败。

  方案二:

有没有办法能把中间的那一坨jessionid去掉呢?这样就解决了问题了吗。通过百度、google终于发现nginx有rewrite这功能,于是修改配置文件,增加重写配置。

rewrite ^(.*);JSESSIONID)(.*)$ $request_uri/ems/?$args redirect;

  reload nginx,测试成功,方案二可行。

遗留问题,不确定方案二去掉jessionid是否会有其他隐藏问题,只能发现了在解决了。

shiro vue 前后端分离中模拟登录遇到的坑的更多相关文章

  1. Springboot + Vue + shiro 实现前后端分离、权限控制

    本文总结自实习中对项目对重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...

  2. shiro,基于springboot,基于前后端分离,从登录认证到鉴权,从入门到放弃

    这个demo是基于springboot项目的. 名词介绍: ShiroShiro 主要分为 安全认证 和 接口授权 两个部分,其中的核心组件为 Subject. SecurityManager. Re ...

  3. Spring Boot + Vue + Shiro 实现前后端分离、权限控制

    本文总结自实习中对项目的重构.原先项目采用Springboot+freemarker模版,开发过程中觉得前端逻辑写的实在恶心,后端Controller层还必须返回Freemarker模版的ModelA ...

  4. vue+springboot前后端分离实现单点登录跨域问题处理

    最近在做一个后台管理系统,前端是用时下火热的vue.js,后台是基于springboot的.因为后台系统没有登录功能,但是公司要求统一登录,登录认证统一使用.net项目组的认证系统.那就意味着做单点登 ...

  5. Spring Boot + Vue 前后端分离开发,权限管理的一点思路

    在传统的前后端不分的开发中,权限管理主要通过过滤器或者拦截器来进行(权限管理框架本身也是通过过滤器来实现功能),如果用户不具备某一个角色或者某一个权限,则无法访问某一个页面. 但是在前后端分离中,页面 ...

  6. Spring Boot + Vue 前后端分离开发,前端网络请求封装与配置

    前端网络访问,主流方案就是 Ajax,Vue 也不例外,在 Vue2.0 之前,网络访问较多的采用 vue-resources,Vue2.0 之后,官方不再建议使用 vue-resources ,这个 ...

  7. 喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  8. 两个开源的 Spring Boot + Vue 前后端分离项目

    折腾了一周的域名备案昨天终于搞定了. 松哥第一时间想到赶紧把微人事和 V 部落部署上去,我知道很多小伙伴已经等不及了. 1. 也曾经上过线 其实这两个项目当时刚做好的时候,我就把它们部署到服务器上了, ...

  9. SpringBoot +Vue 前后端分离实例

    今天下了Vue,想试一试前后端分离的实现,没想到坑还不少,这里就记录一下我遇到的坑和我的代码: 一.Vue的下载安装:从网上找就好了,没什么问题,除了下载以后,要把镜像库改成淘宝的,要不然太慢了. 二 ...

随机推荐

  1. Android BottomSheet:底部弹出Fragment面板(4)

     Android BottomSheet:底部弹出Fragment面板(4) BottomSheet不仅可以弹出轻量级的定制好的面板(见附录文章5,6,7),还可以弹出"重"的 ...

  2. iLBC 压缩比

    *---------------------------------------------------* *                                             ...

  3. MeepoPS基本使用方法

    MeepoPS基本使用 MeepoPS是Meepo PHP Socket的缩写. 旨在提供高效稳定的由纯PHP开发的多进程SocketService. MeepoPS可以轻松构建在线实时聊天, 即时游 ...

  4. wget下载网络图片

    wget http.......  --no-check-certificate

  5. MongoDB小结15 - find【查询条件$ne】

    $ne表示不相等 db.user.find({"name":{"$ne":"william"}})

  6. 【转】深入理解javascript作用域——词法作用域和动态作用域

    前面的话 大多数时候,我们对作用域产生混乱的主要原因是分不清楚应该按照函数位置的嵌套顺序,还是按照函数的调用顺序进行变量查找.再加上this机制的干扰,使得变量查找极易出错.这实际上是由两种作用域工作 ...

  7. 省市县三级联动js代码

    省市县三级联动菜单,JS全国省市县(区)联动代码,一般可以用于用户注册或分类信息二手交易网站,需要的朋友直接复制代码就可以用了,不过有朋友反馈说缺少某些城市,具体缺少哪个尚不知,请想用的朋友自己补全吧 ...

  8. C++对象模型——指向Member Function的指针 (Pointer-to-Member Functions)(第四章)

    4.4 指向Member Function的指针 (Pointer-to-Member Functions) 取一个nonstatic data member的地址,得到的结果是该member在 cl ...

  9. linux启动基本流程

    linux启动序列 1.CPU初始化    CPU自身初始化.从某个固定位置(0xfffffff0)取指令并运行,该指令为跳转指令.跳转到BIOS代码的首部. 2.装载BIOS    BIOS被固化在 ...

  10. MyEclipse,Eclipse注释规范模板

    注释的作用:myeclipse中java文件头注释格式设置,最终可用于javadoc.exe生成API文档,同时提高了代码的可读性 设置方法: windows->preferences-> ...