基于spring security auth2 +jwt的sso单点登录-网关版本

首先我们看下流程图:
1.访问应用CRM的流程(未登录)


crm.png

2.访问应用CMS的流程(已登录)


cms.png

注意:

保证授权请求是在同一个域下,这样才能拿到登录用户的身份信息(根据cookie获取服务器后端session),spring-security管理session是通cookie来判断登录用户身份的,如果授权不在同一个域则无法拿到用户身份,就需要重新登录。
关于spring-security的session管理可以看下:https://blog.csdn.net/qq_36500178/article/details/113091776

访问CRM流程:

1.访问资源接口:前端判断是否带token。
2.没有token,跳转到UAA的前端授权页(带上系统标识)
3.UAA前端授权页调用uaa授权接口
5.uaa后端验证未登录,重定向到uaa登录页并带上系统标识。
6.输入账号和密码。
7.调用登录接口。
8.登录成功以后,由前端调用uaa的授权接口并带上系统标识。
9.授权成功后服务端302跳转到crm的授权码页面。
10.前端在授权码页拿到code,调用uaa的token接口。
11.返回token,crm前端拿token访问资源。

注意:

已gateway做资源服务器,需要对接口进行token的解析,并将用户信息传递给业务app,针对特殊的接口要放开token校验(譬如:uaa的登录接口、授权接口、获取token接口等)
demo:
https://github.com/mushang8923/sso-jwt.git gateway版本请切换到gateway-feature的分支

参考:https://www.cnblogs.com/haoxianrui/p/13719356.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容