# shoulder-user-center

基于 Spring Security 的 Oauth2 认证授权中心，可作为单点登录服务器。


## 工程目录结构：

![目录结构](img/projectAndModule.png)


## 认证流程

- 请求通过网关，抵达网关，网关根据认证凭证（session/token）判断该请求是否已经通过认证（登陆过），
    - 未认证
        - 非登录/注册相关请求
            - （根据租户标识等）重定向到某个登录界面(如默认门户)
        - 登录相关请求
            - 转发给认证授权中心，处理请求
    - 已经认证过
        - 根据认证凭证向登录会话管理中心获取当前用户
            - 获取到（凭证有效）
                - 进行风控过滤
                    - 通过，将用户信息放置于请求头中，放行
                    - 未通过，风险识别、记录，执行预置策略，如返回特定信息
            - 未获取到
                - 认为凭证过期，重定向到 会话过期页面 或直接跳转到 登录页面
                
---

## 扩展
 
### 单点登录 SSO

`SSO` 是一种思想，或者说是一种抽象的解决方案，可以通过它实现：用户可以无感知地在不同系统间访问受保护资源，而不必因访问不同系统而登录不同的账号。

![sso](img/sso.png)

(图片来源于网络，侵删)

由于 `SSO` 并没有强制要求使用者如何实现认证，因此，可以通过不同的手段来达到该墓地，比如可以通过 Oauth2、JWT、Session 等。

### Oauth2


