![ef283112b113bb98b15db09f07dd3a5c.png](https://i-blog.csdnimg.cn/blog_migrate/7f1de5426dacf44eea520d5c0d208136.jpeg)
通过前一篇文章,我们已经实现了前后端分离模式下,使用JSON数据进行前后端交互
第二十四章:整合SpringSecurity之最简登录及方法鉴权
第二十五章:整合SpringSecurity之使用数据库实现登录鉴权
第二十六章:整合SpringSecurity之JSON格式前后端交互
主要涉及到
- 实现 AbstractAuthenticationProcessingFilter 接口,接收JSON格式登录表单数据,执行登录校验
- 实现 AuthenticationSuccessHandler 接口,登录成功,返回JSON格式信息
- 实现 AuthenticationFailureHandler 接口,登录失败,返回JSON格式错误信息
- 实现 AccessDeniedHandler 接口,登录成功,但无资源访问权限时,返回JSON格式错误信息
- 实现 AuthenticationEntryPoint 接口,未登录访问资源时,返回JSON格式错误信息
要实现前后端分离,还有一个重要的环节就是存储用户登录状态,在前一篇文章中,虽然我们实现的JSON格式交互,但是依然使用 session 存储用户登录状态,但是在实际项目中,客户端不再是单纯的网页,还可以是手机,平板,公众号,小程序等,不是每一个客户端都能够支持 session+cookie 的模式,怎么样可以使用一套代码,实现多个客户端登录、鉴权。
使用 token 代替 session 的流程:
用户登录成功,服务端向客户端分发一个 token,客户端根据自已的情况自行存储,并且在每一次请求中附带上该 token,服务端接收到请求,对该 token 进行校验,判断请求用户登录状态,获取权限信息,实现权限校验。
目标
整合 SpringSecurity 实现使用 token 进行鉴权。
思路
分成两个部分,第一部分是登录,客户端向服务端发起登录请求时,
服务端需要生成token并存储起来,然后将token分发给客户端,客户端需要自行存储该token。
流程图: