处理隐式流授权:校验 client/redirect 白名单后,铸超短 TTL 令牌并 302 回跳带 fragment。
authorize 入参(经 zod 契约校验)。
请求(SessionGuard 已挂 sessionUser)。
Fastify reply(直发 302)。
返回已验令牌主体的 OIDC userinfo({ sub, email, name })。
Authorization 头(Bearer <token>)。
Fastify reply(直发裸 JSON)。
OAuth2 授权端点(本仓充当 Odoo 的 OIDC OP·oauth-sso-odoo-integration 切片 C)。
Remarks
GET /api/v1/oauth2/authorize(隐式流·Odooauth_oauth只发response_type=token)。 落/oauth2/*而非/auth/*:BA 原生 HTTP 面经AuthBootstrapService以 Fastify 实例级 通配app.all('/api/v1/auth/*')挂载并绕开 Nest router/guard/validation 三层——SSO OP 是我方 Nest controller 面,置于 BA 前缀内会被通配抢路由,故隔离在/oauth2/*(回改 plan 留痕·见 §7 v0.4.0)。 默认走全局SessionGuard(deny-by-default·未登录 401),不标@Public():授权须绑已认证会话。 标@TenantIsolationExempt():SSO 是跨租户身份提供方(OP)面,已认证但合法无租户上下文—— 否则全局TenantIsolationGuard(deny-by-default 租户墙)会对此面未绑活跃租者 403 死锁。 用@Res()直发 302,绕开全局TransformInterceptor(重定向无 JSON 信封)。