关于 omni-auth
omni-auth 是用于管理 OmniRoute API 请求认证和仪表板会话的技能,涵盖 Bearer 凭证、密码登录、会话 Cookie,以及带主体校验的可选 OIDC 流程。
主要功能
- 01Bearer 令牌 API 认证
- 02密码式仪表板会话
- 03OIDC 登录与回调
- 04CSRF 与认证状态接口
适用场景
- 01使用密钥认证 API 请求
- 02通过密码登录仪表板
- 03配置 OIDC 仪表板登录
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ cheaper-inference/ omniroute --skill omni-auth安装后在 Claude Code 中输入/omni-auth确认已加载。
详细介绍
概览
管理 API 密钥认证和会话令牌。从这里开始,通过 Bearer 令牌认证请求、获取会话 Cookie,并为 OmniRoute API 配置登录要求。
认证
远程 API 请求使用 Bearer 凭据。仪表板登录则有所不同:POST /api/auth/login 接受管理密码,并返回 auth_token 会话 Cookie。
端点
POST /api/auth/login
认证用户
curl -X POST http://localhost:20128/api/auth/login \
-H "Content-Type: application/json" \
-c cookie.jar \
-d '{"password":"<management-password>"}'
POST /api/auth/logout
退出登录
CSRF_TOKEN=$(curl -s http://localhost:20128/api/auth/csrf -b cookie.jar | jq -r .token)
curl -X POST http://localhost:20128/api/auth/logout \
-b cookie.jar \
-H "x-omniroute-csrf: $CSRF_TOKEN" \
-H "Content-Type: application/json" \
-d '{}'
GET /api/auth/oidc/login
为仪表板管理员访问关卡启动 OIDC 登录
根据已配置的 OIDC 颁发者/客户端构建授权 URL(通过 {issuer}/.well-known/openid-configuration 发现,
若未发现则回退到 {issuer}/authorize),设置短期有效的 oidc_state Cookie,并重定向浏览器。启用 OIDC 后,
密码登录仍可作为备用方式使用。
curl http://localhost:20128/api/auth/oidc/login \
-b cookie.jar
GET /api/auth/oidc/callback
完成仪表板管理员访问关卡的 OIDC 登录
验证 state Cookie,使用授权 code 交换令牌,
根据颁发者的 JWKS 验证 ID 令牌(受众 = 客户端 ID),并
根据 oidcAllowedSubjects 检查令牌的 sub/email;该配置必须至少包含
一项(空列表会导致 not_configured)。成功后,它会签发与密码登录相同的 30 天 auth_token 仪表板会话
JWT,并重定向到 /dashboard。
curl http://localhost:20128/api/auth/oidc/callback \
-b cookie.jar
GET /api/auth/csrf
GET auth › csrf
curl http://localhost:20128/api/auth/csrf \
-b cookie.jar
GET /api/auth/status
GET auth › status
curl http://localhost:20128/api/auth/status \
-b cookie.jar
负载
有关详细的请求/响应架构,请参阅完整的 OpenAPI 规范:GET /api/openapi/spec 或 docs/openapi.yaml。
OmniRoute
本地/远程 AI 网关,提供兼容 OpenAI 的 REST 接口。一个密钥,375 个提供商, 自动回退、RTK 令牌节省、MCP 服务、A2A Agent。
设置
export OMNIROUTE_URL="http://localhost:20128" # or VPS / tunnel URL
export OMNIROUTE_KEY="sk-..." # from Dashboard → API Keys
所有请求均使用:${OMNIROUTE_URL}/v1/...,并携带 Authorization: Bearer ${OMNIROUTE_KEY}。
验证:curl $OMNIROUTE_URL/api/health → {"ok":true}
发现模型
curl $OMNIROUTE_URL/v1/models # chat/LLM (default)
curl $OMNIROUTE_URL/v1/models/image # image-gen
curl $OMNIROUTE_URL/v1/models/tts # text-to-speech
curl $OMNIROUTE_URL/v1/models/embedding # embeddings
curl $OMNIROUTE_URL/v1/models/web # web search + fetch
curl $OMNIROUTE_URL/v1/models/stt # speech-to-text
在请求中将 data[].id 用作 model 字段。组合模型会以 owned_by:"combo" 显示。
能力技能
CLI 技能(omniroute 二进制文件)
错误
401→ 设置/刷新OMNIROUTE_KEY(Dashboard → API Keys)400 Invalid model format→ 检查/v1/models/<kind>中是否存在model503 Provider circuit open→ 上游提供商不可用;等待Retry-After秒后重试429→ 请求受限;遵循Retry-After
相较于直接使用 OpenAI 的优势
- 自动回退组合(19 种策略):即使提供商限制速率,也不会中断编码
- RTK 令牌节省器:通过 47 种专用过滤器(git-diff、test-jest、terraform-plan、docker-logs…)压缩 tool_result——令牌减少 20-40%
- 穴居人模式:可选的简短系统提示词注入(LITE/FULL/ULTRA)——补全内容减少 15-25%
- 内置 MCP + A2A 服务(这是唯一同时支持这两种协议的 AI 路由器)
- 记忆:使用 FTS5 + Qdrant 保存持久化 Agent 上下文
- 防护机制:用于 PII 屏蔽、提示词注入检测和视觉策略