51 lines
1.8 KiB
Markdown
51 lines
1.8 KiB
Markdown
# oAuth2: 统一认证
|
||
|
||
## 项目概述
|
||
|
||
这是一个基于Spring Boot的统一认证应用,集成了OAuth2认证服务,用户可以通过统一的登录入口访问不同的后端服务,系统会自动处理认证和请求转发。
|
||
|
||
## 核心功能
|
||
|
||
### 1. 统一用户登录
|
||
- **OAuth2认证服务器**:提供标准的OAuth2认证流程
|
||
- **多种登录方式**:支持用户名密码、手机号、邮箱登录
|
||
- **JWT Token**:生成和验证JWT令牌
|
||
- **Session管理**:支持分布式session管理
|
||
|
||
|
||
## 核心配置
|
||
|
||
### 1. OAuth2认证配置
|
||
- **授权类型**:支持authorization_code、password、client_credentials
|
||
- **Token存储**:JWT令牌,支持无状态部署
|
||
- **Token过期时间**:access_token 2小时,refresh_token 30天
|
||
|
||
## 使用流程
|
||
|
||
### 1. 用户登录流程
|
||
1. 用户访问前端应用
|
||
2. 前端重定向到认证网关的登录页面
|
||
3. 用户输入凭据进行认证
|
||
4. 认证成功后返回授权码
|
||
5. 前端使用授权码换取access_token
|
||
6. 后续请求携带token访问API
|
||
|
||
需要前端页面(只需要登录页),页面尽量简单,因为只是为了测试统一认证功能; 用户数据存在的数据库结构见 database.md;
|
||
|
||
3. 代码实现规划
|
||
创建Spring Boot项目(Maven结构)
|
||
添加Spring Security、OAuth2、JWT相关依赖
|
||
编写OAuth2认证服务器配置
|
||
登录方式(用户名 密码)
|
||
实现JWT Token生成与校验
|
||
提供登录、Token获取等接口
|
||
注释详细,便于理解
|
||
需要支持Token刷新
|
||
极简登录页 index.html,仅支持用户名密码登录
|
||
|
||
Spring Boot + OAuth2 + JWT,用户名密码登录,数据库结构见 database.md
|
||
极简登录页 index.html,仅支持用户名密码登录)
|
||
|
||
登录页: http://localhost:9090/index.html
|
||
|
||
http://localhost:9090/index.html?client_id=order&redirect_uri=http://order.com/home |