提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
Spring Security+JWT实现项目级前端分离认证授权
web应用需要进行认证和授权
认证:验证当前访问系统的是不是本系统的用户,并且确认具体是哪个用户
授权:经过认证后,判断当前用户是否有权限进行某个操作
一、Spring Security+JWT是什么?
二、使用步骤
1.引入依赖
代码如下(示例):
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
登录校验流程:
1.携带用户名和密码,访问登录接口;服务器从数据库校验用户名和密码是否正确,如果正确,就利用用户名和密码生成一个jwt,并返回给前端。
2.用户每次登录请求时需要把jwt放在请求头中,服务器会对请求头中的token进行解析,获取UserId,根据UserId获取用户有关信息,看是否有权限进行某些操作,若有就访问目标资源,并返回结果给前端。
SpringSecurity认证流程:
1.SpringSecurity的原理是一个过滤器链,内部包含了各种过滤器
2.UsernamePasswordAuthenticFilter:主要负责填写用户名和密码的登录请求
ExceptionTranslationFilter:主要负责处理AccessDeniedException和AuthenticException
FilterSecurityInterceptor:主要负责进行权限校验