springsercurity

在这里插入图片描述

认证流程:

在这里插入图片描述
概念速查:

Authentication接口: 它的实现类,表示当前访问系统的用户,封装了用户相关信息。

AuthenticationManager接口:定义了认证Authentication的方法

UserDetailsService接口:加载用户特定数据的核心接口。里面定义了一个根据用户名查询用户信息的方法。

UserDetails接口:提供核心用户信息。通过UserDetailsService根据用户名获取处理的用户信息要封装成UserDetails对象返回。然后将这些信息封装到Authentication对象中。

在这里插入图片描述
如何校验:
前端请求切带token 验证token是否具有权限
在这里插入图片描述
存储升级:redis
再认证成功之后,用户信息存入一份到redis,可以通过userid查询
在这里插入图片描述
因为UserDetailsService方法的返回值是UserDetails类型,所以需要定义一个类,实现该接口,把用户信息封装在其中。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

定义配置类:规定放行接口

​ 接下我们需要自定义登陆接口,然后让SpringSecurity对这个接口放行,让用户访问这个接口的时候不用登录也能访问。

​ 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置把AuthenticationManager注入容器。

​ 认证成功的话要生成一个jwt,放入响应中返回。并且为了让用户下回请求时能通过jwt识别出具体的是哪个用户,我们需要把用户信息存入redis,可以把用户id作为key。
在这里插入图片描述
前后端,session不支持,需要关闭

在这里插入图片描述
providermanger 帮助认证,会调用userdetailsserviceimpl中的方法,进行用户校验,从数据库进行
在这里插入图片描述
如果校验通过,生成jwt,存入redis了,存储jwt用map去存储
在这里插入图片描述
redis配置类,通过@component注解,存入容器中,调用类只需要注入,就可以获取redis中的方法。
总结:
​ 接下我们需要自定义登陆接口,然后让SpringSecurity对这个接口放行,让用户访问这个接口的时候不用登录也能访问。
​ 在接口中我们通过AuthenticationManager的authenticate方法来进行用户认证,所以需要在SecurityConfig中配置把AuthenticationManager注入容器。
​ 认证成功的话要生成一个jwt,放入响应中返回。并且为了让用户下回请求时能通过jwt识别出具体的是哪个用户,我们需要把用户信息存入redis,可以把用户id作为key。

在这里插入图片描述
主要实现功能实:
在这里插入图片描述
前后端分离项目,前端每一次的请求,都会往后端携带token
在请求头中去除token:
在这里插入图片描述

注销用户:

在这里插入图片描述

授权

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值