登录接口 独立实现
先安装依赖: springboot 2.5.0之前,不然SecurityConfig 文件会出问题,还有一些utils

引入依赖后我们在尝试去访问之前的接口就会自动跳转到一个Springsecurity的默认登陆页面,默认用户名是user,密码会输出在控制台。
必须登陆之后才能对接口进行访问。

注意如果有定义passwordEncoder,先注释掉。不然会报错说你输入的不是BCrypt

认证:
(登录校验流程)




自定义登录接口:调用AuthenticationManager的方法进行认证

这里的userService是实现用户注册,用户信息的操作的
自定义UserDetailsServiceImpl:在这个实现类中去查询数据库。自定义一个类实现UserDetails类(里面好几处都要改)
调用loadUserByUsername方法查询用户,InMemoryUserDetailManager是在内存里查找,我们自己实现UserDetailsService的实现类UserDetailsServiceImpl,从数据库里查

返回UserDetails对象
通过PasswordEncoder对比UserDetails中的密码和Authentication的密码是是否正确


如果正确就把UserDetail中的权限信息没置到Authentication对象中
再回到BlogLoginServicelmpl中如果认证通过生成jwt,把用户信息存入redis中

校验:

①定义Jwt认证过滤器
获取token
解析token获取其中的userid
从redis中获取用户信息
存入SecurityContextHolder

配置SecurityConfig
一个是登陆认证,一个是校验(判断token是否正确)
一个是登录时候的认证,一个是其他链接要校验携带的token是否正确。
认证授权失败处理(自定义异常处理)

配置securityConfig

统一异常处理
文章介绍了如何在Springboot2.5.0项目中实现登录接口,包括依赖设置、自定义登录验证、使用UserDetailsService从数据库查询用户、PasswordEncoder的使用以及JWTtoken的生成和验证。同时,文章还涉及了SecurityConfig的配置、认证失败处理和统一异常处理机制。
6725

被折叠的 条评论
为什么被折叠?



