1 前后端分离进行认证的核心是依赖的token,可理解成加密之后的字符串,通过是否携带token判断是不是我系统的用户,也可以拿到token之后获取加密之前的数据来看你是哪一个用户。
2 SpringSecurity的原理其实就是一个过滤器链,内部包含了提供各种功能的过滤器。
其中UsernamePasswordAuthenticationFilter负责处理我们在登录页面填写了用户密码后的登录请求。
ExceptionTranslationFilter:处理过滤器链中抛出的任何AccessDeniedException和AuthenticationException
FilterSecurityInterceptor:负责权限校验的过滤器。
3 当自定义实现类实现UserDetailsService接口后,测试从数据库查询用户信息且用户密码是明文存储登录时报错java.lang.IllegalArgumentException: There is no PasswordEncoder mapped for the id “null”,其解决方案是需要在密码前加{noop}
4 UserDetailService查到用户对象之后,会通过PasswordEncoder调用matches()方法去校验用户登录时所写的密码与数据库中查到的密码的密文是否是一致的
SpringSecurity+JWT实现前后端分离认证授权
于 2023-07-02 00:02:42 首次发布