oidc-gateway-demo/oauth2.md

51 lines
1.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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