OIDC Provider · 已就绪

为 UG 项目统一身份认证

完整 OIDC 实现 · JWT RS256 · Refresh Token Rotation为所有 UG 应用提供安全的单点登录

核心能力

标准协议、安全默认、即插即用

完整 OIDC 实现

Authorization Code Flow + PKCE,兼容 oidc-client-ts 等主流客户端,完整支持 Discovery 端点

跨应用 SSO

所有 UG 子应用共享同一套身份体系,一次登录全线畅通,支持 Refresh Token Rotation

RS256 JWT

私钥签发 Access Token,公钥通过 JWKS 端点分发,各下游服务独立验签无需回调

OIDC 端点

标准 OpenID Connect 协议端点

GET/.well-known/openid-configuration
GET/.well-known/jwks.json
GET/api/oidc/authorize
POST/api/oidc/token
GET/api/oidc/userinfo
POST/api/oidc/introspect
POST/api/oidc/revoke
GET/api/oidc/end-session

快速接入

几行代码即可对接 UG 鉴权中心

前端oidc-client-ts
import { UserManager } from 'oidc-client-ts'

const userManager = new UserManager({
  authority: 'https://auth.ug666.top',
  client_id: 'your_app_id',
  redirect_uri: 'https://yourapp.com/callback',
  scope: 'openid profile email',
  response_type: 'code',
})

// 发起登录
await userManager.signinRedirect()

// 处理回调
const user = await userManager.signinRedirectCallback()
console.log(user.access_token)
后端@ug-auth/sdk
import { createAuthMiddleware } from '@ug-auth/sdk'

// 初始化中间件(自动获取 JWKS 并缓存)
const authMiddleware = createAuthMiddleware({
  issuer: 'https://auth.ug666.top',
  audience: 'your_app_id',
})

// Next.js Route Handler 示例
export async function GET(req: Request) {
  const user = await authMiddleware.verify(req)
  if (!user) {
    return Response.json({ error: 'Unauthorized' }, { status: 401 })
  }
  return Response.json({ userId: user.sub })
}