场景:现在有一个前后端分离的系统,前端框架使用vue-element-template,后端框架使用springboot+springSecurity+JWT+Redis(登录部分)现在需要接入到已经存在的第三方基于oauth2.0的非标准接口统一认证系统。
温馨提示:如果是接入到基于oauth2.0的标准接口的认证服务系统,可以直接使用spring-boot-starter-oauth2-client)参考:超级简单的springboot整合springsecurity oauth2第三方登录_spring-boot-starter-oauth2-client 实现登出-CSDN博客
整体的流程大概为:
- 用户请求访问应用系统的前端。
- 重定向到应用系统的后端。
- 应用系统后端将认证请求发送到认证服务器,认证服务器判断是否认证,如果没有认证过,则重定向到认证登录页面进行统一认证。
- 认证成功后,重定向到应用系统后端指定URL,并返回code。
- 应用系统后端根据返回的code请求认证服务器获取access_token和refresh_token。
- 应用系统根据返回的access_token请求认证服务器获取用户信息。
- 应用系统的后端根据用户信息生成token返回前端,
- 应用系统前端接受token并持久化,调用userinfo请求后端 接口,获取用户信息
- 后端验证解析token,将用户信息返回前端。
- 登录到应用系统主页。
温馨提示:此过程为大概流程,后面将分前端和后端部分详细介绍如何 改造原项目。