登录认证
创建LoginController,直接用员工的Service【接口查询】和Mapper【员工表查询语句】
登录
登录校验
http是无状态的协议。每次请求都是独立的。
会话技术
浏览器与服务器的一次链接就是一次会话。一次会话中可以包含多次请求和响应。session与浏览器个数有关。
会话跟踪:服务器来识别请求是否来自同一浏览器,一边在同一次会话的多次请求间共享数据。
Cookie
浏览器端
Set-Cookie:服务器向客户端发送,然后客户端就会获得一个Cookie,之后客户端的每一次请求就会自动的携带着这个Cookie给服务器
跨域:前后端步数的服务器在协议、IP/域名、端口这三者有一个不同就是跨域
Session
服务器端会话跟踪技术,本质基于Cookie
数据存在服务器端,一般人拿不到,所以相对安全
令牌技术
JWT令牌
JSON Web Token
通信双方以JSON数据格式安全的传输信息。
JWT-生成
JWT-校验
登录后下发令牌
用户登录成功后,系统会自动下发JWT令牌,后续的每次请求中,都需要再请求头header中携带到服务端,请求头名称为token,值为登录时下发的JWT令牌。
把生成的JWT令牌封装到JSON里,前端会解析。
过滤器Filter
是JavaWeb 三大组件(Servlet、Filter、Lintener)之一
主要去实现doFilter
方法,拦截到请求之后调用,
chain.doFilter(request,response)
过滤器链
过滤器链的执行逻辑
1.执行流程:
请求–>放行前逻辑–>放行–>访问对应web资源–>放行后逻辑
2.拦截路径:
/login
# 拦截一个具体的路径
/depts/*
# 拦截一个目录下所有资源
/*
#拦截所有
3.过滤器链
登录校验Filter
1.根据请求路径判断是否为登录,
2.获取JWT令牌,并解析
统一拦截系统
类似过滤器,用来动态拦截控制器方法的执行。
注意:preHandle的返回值为True代表放行
拦截器-拦截路径
拦截器-执行流程
执行流程是:先过滤器–拦截器T
omcat不识别Controller程序但识别Servlet程序,因为Tomcat是Servlet容器。
但Spring提供DispatcherServlet将请求转给Controller。
实现登录认证,只需过滤器或拦截器一个就行。