登录相关的知识点

-登录认证

-会话技术

会话:用户打开浏览器,访问web服务器的资源,会话建立,知道有一方断开连接,会话结束。再一次会话中可以包含多次请求和响应。

会话跟踪:一种维护浏览器状态的方法,服务器需要识别多次请求是否来自于同一浏览器,以便在同一次会话的多次请求间共享数据。

会话跟踪技术:

  • 客户端会话跟踪技术:Cookie

  • 服务器会话跟踪技术:Session

  • 令牌技术

Cookie:

优点:HTTP协议中支持的技术

缺点:

  • 移动端APP无法使用Cookie

  • 不安全,用户可以自己禁用Cookie

  • Cookie不能跨域

Session:

优点:存储在服务器,安全

缺点:

  • 服务器集群环境下无法直接使用Session

  • Cookie的缺点

令牌技术:

优点:

  • 支持PC端、移动端

  • 解决集群环境下的认证问题

  • 减轻服务器端存储压力

优点:需要自己实现

-登录校验

-JWT令牌 ——JSON Web Token

JWT:定义了一种简洁的自包含的格式,用于在通信双方以json数据格式安全的传输信息。由于数字签名的存在,这些信息是可靠的。

组成:

第一部分:Header(头),记录令牌类型,签名算法等。例如:{"alg":"HS256","type":"JWT"}

第二部分:Payload(有效载荷),携带一些自定义的信息、默认信息等、例如:{"id":"1","username":"Tom"}

第三部分:Signature(签名),防止Token被篡改、确保安全性。将header、payload,并加入指定密钥,通过指定签名算法计算而来。

-JWT的使用:
JWT依赖引入

JWT令牌的生成

JWT令牌的校验

注意事项:

  • JWT校验时使用的签名密钥,必须和生成JWT令牌时使用的秘钥是配套的

  • 如果JWT令牌解析校验时报错,则说明JWT令牌被篡改或失效了,令牌非法

-过滤器(Filter)
概述:
  • 概念:Filter过滤器,是Javaweb 三大组件(Servlet、Filter、Listener)之一

  • 过滤器可以把对资源的请求给拦截下来,从而实现一些特殊的功能

  • 过滤器一般完成一些通用的操作,比如:登陆脚亚目。统一编码处理、敏感字符串处理等。

Filter拦截路径

Filter可以根据需求,配置不同的拦截资源路径:

拦截路径urlPatterns值含义
拦截具体路径/login只有访问/login 路径时才会被拦截
拦截目录/emps/*访问/emps下的所有资源,都会被拦截
拦截所有/*访问所有资源,都会被拦截
过滤器链:

介绍:一个web应用中,可以配置多个过滤器,这多个过滤器就形成了一个过滤器链

顺序:注解配置的Filter ,优先级是按照过滤器类名(字符串)的自然排序

过滤器链执行顺序:

登录校验-Filter

-拦截器Interceptor
概述:

概念:是一种动态拦截方法调用的机制,类似于过滤器。Spring框架中提供的,用来动态拦截控制器方法的执行。

作用:拦截请求,在指定的方法的调用前后,根据业务需要执行预先设定的代码

拦截器-拦截路径

拦截器可以根据需求,配置不同的拦截路径

拦截路径含义举例
/*一级路径能匹配/depts,/emps,/login,不能匹配/depts/1
/**任意级路径能匹配/depts,/depts/1,/depts/1/2
/depts/*/depts下的一级路径能匹配/depts/1,不能匹配/depts/1/2,/depts
/depts/**/depts下的任意级记录能匹配/depts,/depts/1/2,不能匹配/emps/1
拦截器执行流程:

Filter 与 Interceptor 的不同:

接口规范不同:过滤器需要实现Filter接口,而拦截器需要实现HandlerInterceptor接口。

拦截范围不同:过滤器Filter会拦截所有的资源,而Interceptor只会拦截Spring环境中的资源。

登录校验Interceprot:
步骤:
  1. 获取请求URL。

  2. 判断请求URL中是否包含login,如果包含,说明时登陆操作,放行。

  3. 获取请求头中的令牌(token)。

  4. 判断令牌是否存在,如果不存在,返回错误结果(未登录)。

  5. 解析token,如果解析失败,返回错误结果(未登录)。

  6. 放行。

Interceptor登录校验逻辑:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

叫一只啦啦

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

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

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

打赏作者

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

抵扣说明:

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

余额充值