# shoulder-user-center 基于 Spring Security 的 Oauth2 认证授权中心,可作为单点登录服务器。 ## 工程目录结构: ![目录结构](img/projectAndModule.png) ## 认证流程 - 请求通过网关,抵达网关,网关根据认证凭证(session/token)判断该请求是否已经通过认证(登陆过), - 未认证 - 非登录/注册相关请求 - (根据租户标识等)重定向到某个登录界面(如默认门户) - 登录相关请求 - 转发给认证授权中心,处理请求 - 已经认证过 - 根据认证凭证向登录会话管理中心获取当前用户 - 获取到(凭证有效) - 进行风控过滤 - 通过,将用户信息放置于请求头中,放行 - 未通过,风险识别、记录,执行预置策略,如返回特定信息 - 未获取到 - 认为凭证过期,重定向到 会话过期页面 或直接跳转到 登录页面 --- ## 扩展 ### 单点登录 SSO `SSO` 是一种思想,或者说是一种抽象的解决方案,可以通过它实现:用户可以无感知地在不同系统间访问受保护资源,而不必因访问不同系统而登录不同的账号。 ![sso](img/sso.png) (图片来源于网络,侵删) 由于 `SSO` 并没有强制要求使用者如何实现认证,因此,可以通过不同的手段来达到该墓地,比如可以通过 Oauth2、JWT、Session 等。 ### Oauth2