Skip to content

changjunhao/OAuth2-Tutorial

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OAuth2 Tutorial

OAuth2.0 / OpenID Connect 教学演示项目,用 Go 实现授权码许可、隐式许可、资源拥有者凭据许可、客户端凭据许可四种流程。

项目结构

├── client/          模拟第三方软件(:8080)
│   ├── handler/     请求处理器
│   └── html/        OIDC 页面模板
├── server/          授权服务 + 受保护资源服务(:8081)
│   ├── handler/     授权 & 资源处理器
│   └── html/        授权页面模板

支持的授权流程

流程 端点
授权码许可 (Authorization Code) GET /GET /AppServlet
隐式许可 (Implicit) GET /tokenGET /AppTokenServlet
资源拥有者凭据许可 (Password) POST /AppPasswordServlet
客户端凭据许可 (Client Credentials) POST /AppClientCredentialsServlet
OIDC (Authorization Code + ID Token) GET /AppOIDCServlet

技术栈

  • Go 1.26
  • net/http — 使用 http.NewServeMux() 模式路由 (Go 1.22+)
  • log/slog — 结构化日志 (Go 1.21+)
  • github.com/golang-jwt/jwt/v5 — JWT 签发与解析
  • github.com/google/uuid — 令牌生成
  • crypto/rand — 安全随机数生成
  • html/template — 页面渲染

快速开始

# 启动授权服务(:8081)
cd server && go run .

# 另开终端,启动第三方软件(:8080)
cd client && go run .

浏览器访问 http://localhost:8080/ 即可开始授权码许可流程。

About

OAuth2 Tutorial

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors