# spring-security-oauth-study
**Repository Path**: dingjunjun_codeSpace/spring-security-oauth-study
## Basic Information
- **Project Name**: spring-security-oauth-study
- **Description**: spring security + auth2.0 +jwt 练手项目
- **Primary Language**: Java
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 66
- **Created**: 2023-02-08
- **Last Updated**: 2023-02-08
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 使用手册
## change log
| tag version | change logs | date |
| --- | --- | --- |
| v7.0.0 | 1.新增gateway对令牌有效期的判断
2.修复上一个版本中refresh_token换取新token后端报错问题
3.新增business-server模块,前后端分离实现用户登录、退出、更换token操作 |2020-01-29|
| v6.0.0 | 1.扩展用户信息到jwt令牌
2.资源服务上下文保存和取出用户信息 | 2021-01-14 |
| v5.0.0 | 1.新增eureka注册中心服务register-server
2.新增网关服务gateway-server
3.修改资源服务,移除OAuth2.0以及JWT依赖和相关配置
4.实现初版分布式认证和鉴权功能 |2020-01-13|
| v4.0.0 | 1.使用jwt令牌功能
2.客户端信息保存到数据库,用户授权码保存到数据库3.新增common模块保存公共功能| 2020-01-11 |
| v3.0.0 | 1. 新增资源服务,可进行接口测试
2. 修改了auth-center/docs/sql/init.sql | 2020-01-10 |
| v2.0.0 | 实现自定义登陆页面、自定义授权页面 | 2021-01-07|
| v1.0.0 | 实现初版认证服务器,可进行接口测试
遗留问题:
1. 登录页面加载速度太慢
2. 授权页面太丑 | 2021-01-07 |
## 文章介绍
> [Spring Security OAuth2.0认证授权一:框架搭建和认证测试](https://blog.kdyzm.cn/post/24)
>
> [Spring Security OAuth2.0认证授权二:搭建资源服务](https://blog.kdyzm.cn/post/25)
>
> [Spring Security OAuth2.0认证授权三:使用JWT令牌](https://blog.kdyzm.cn/post/26)
>
> [Spring Security OAuth2.0认证授权四:分布式系统认证授权](https://blog.kdyzm.cn/post/30)
>
> [Spring Security OAuth2.0认证授权五:用户信息扩展到jwt](https://blog.kdyzm.cn/post/31)
>
> [Spring Security OAuth2.0认证授权六:前后端分离下的登录授权](https://blog.kdyzm.cn/post/38)
## 项目介绍
### 1. 模块介绍
| 模块名 | 模块介绍 |
| --- | ---|
| [auth-server](auth-server) | 认证服务 |
| [resource-server](resource-server)| 资源服务|
| [register-server](register-server)| 注册中心服务|
| [gateway-server](gateway-server)| 网关服务 |
| [business-server](business-server) | 前端页面web容器服务 |
| [common](common) |公共模块,保存公共功能|
### 2.服务启动顺序
项目启动前务必先执行 [auth-server/docs/sql/init.sql](auth-server/docs/sql/init.sql) 脚本。
项目启动顺序:
1. register-server
2. gateway-server
3. auth-server
4. resource-server
5. business-server
### 3.项目测试方法
启动成功后打开浏览器,输入`http://127.0.0.1:30002/`地址,就会看到以下页面

点击登录之后,出现登录框

输入账号密码之后,登录成功之后会跳转首页,就会看到个人信息

这里设置的token有效期为10秒,所以很快token就会失效,十秒钟之后刷新页面就会有新的提示

接下来可以有两种选择,一种是使用refresh-token更新失效的令牌,另外一种是重新登录,这里refresh_token的有效期也很短,只有30秒,如果超出30秒,则会更新失败,提示如下

而如果在30秒内刷新令牌,则会重新获取到令牌并刷新当前页