简单整理登录拦截的思想

一. 同步的方式

1.登录时将信息(一般是用户信息)存储在session中

2.定义拦截器 判断session中是否有用户信息

3.没有登录时 重定向到登录页面(同步请求重定向是有效的)

二.异步(ajax)的方式(页面在项目中)

1.登录时将用户信息放到session中

2.定义拦截器 判断session中是否存在用户信息

3.没有登录时 给前端返回统一的状态码 前端进行跳转

以上两种方式session默认是没有问题的

三.异步(axios)的方式(页面不在项目中)前后端分离的方式

       这种方式默认不携带cookie 也就是说这种方式每次都会创建新的session对象 那么对象信息就会丢失 意味着永远登录不成功
那么如何解决这个问题呢?
很简单就是将默认不携带cookie改为携带cookie
1.后端(Java)让携带cookie
在这里插入图片描述
2.前端需要携带cookie
在这里插入图片描述
这里还有一个问题,当你自定义的拦截器满足条件时,代码向下执行没有任何问题.
但是,拦截器不满足条件时,前端会抛出一个跨域问题的异常,后端解决跨域也没有任何作用
这是什么原因?
我们看springmvc源码就可以知道springmvc解决跨域问题的就是一个拦截器,这个拦截器叫做CorsFilter;我们自定义拦截器时,会先进入我们自定义的拦截器,当满足我们自定义的拦截器时,代码向下执行,又进入CorsFilter解决跨域问题。如果不满足我们自定义的拦截器时,请求不会进入CorsFilter,直接返回前端,此时就又出现了跨域问题。
如何解决这个问题呢?
思想:就是在进入自定义的拦截器之前解决跨域问题
操作方式:
1.自定义Filter(Filter拦截的是进入servlet的请求的,而我们的拦截器是属于springmvc的,要想进入springmvc是要先进入DispatcherServlet的,所以Filter是要先于Interceptor拦截器执行的)
这种方式可以去百度
2.修改springmvc中跨域的过滤器顺序
步骤1.先容器中添加CorsFilter 并且是父容器中
在这里插入图片描述
步骤2.在web.xml中 使用DelegatingFilterProxy指定定义的过滤器即可
在这里插入图片描述

1.登录时将用户信息放到session中

2.定义拦截器 判断session中是否存在用户信息

3.没有登录时 给前端还是返回统一的状态码 前端进行跳转

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

百川_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值