认证 API
Lyncore 使用 JWT Bearer 认证。登录换取 access_token / refresh_token,后续请求在 Authorization 头携带。
版本说明:登录接口两者都有,但行为与可用范围不同。OIDC SSO 仅企业版。
POST /api/v1/auth/login
用户登录,签发令牌对。
请求:
json
{
"username": "admin",
"password": "your-password"
}| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| username | string | ✅ | 用户名,长度 3–64 |
| password | string | ✅ | 密码,长度 6–128 |
响应:
json
{
"code": 0,
"data": {
"user": {
"id": "u_xxx",
"username": "admin",
"role": "admin",
"tenant_id": "default"
},
"access_token": "eyJhbGciOi...",
"refresh_token": "eyJhbGciOi...",
"token_type": "Bearer",
"expires_in": 86400
},
"message": "ok",
"request_id": "req_abc123"
}个人版差异:
/api/v1/auth/login为桩实现,接受任意username/password,直接签发lite-admin/default/admin的令牌,不校验密码。个人版为本地单用户,租户固定default。
POST /api/v1/auth/refresh
用 refresh_token 换取新的令牌对。登录接口限流 5 次/窗口,刷新限流 10 次/窗口。
请求:
json
{
"refresh_token": "eyJhbGciOi..."
}响应: 同登录(返回新的 access_token / refresh_token)。
GET /api/v1/auth/me
获取当前登录用户信息与角色。
响应:
json
{
"code": 0,
"data": {
"id": "u_xxx",
"username": "admin",
"role": "admin",
"tenant_id": "default"
},
"message": "ok",
"request_id": "req_abc123"
}POST /api/v1/auth/logout
登出。企业版会将 refresh token 写入黑名单使其失效;个人版为本地会话清理。
OIDC SSO(企业版)
企业版支持 OIDC 协议接入企业统一身份认证(如企业 IdP)。
| 端点 | 方法 | 说明 |
|---|---|---|
/api/v1/auth/oidc/login | GET | 跳转 IdP 登录页,发起授权 |
/api/v1/auth/oidc/callback | GET | IdP 回调,完成令牌签发 |
配置通过环境变量(企业版部署侧):
OIDC_ISSUER=https://your-idp.example.com
OIDC_CLIENT_ID=xxx
OIDC_CLIENT_SECRET=xxx在请求中使用令牌
bash
curl http://localhost:19824/api/v1/auth/me \
-H "Authorization: Bearer eyJhbGciOi..."企业版示例(默认端口 8080):
bash
curl http://localhost:8080/api/v1/auth/me \
-H "Authorization: Bearer eyJhbGciOi..."缺失或非法 Authorization 头返回 40100。API Key(企业版管理员通过 /api/v1/admin/users/:id/api-keys 签发)同样以 Bearer <key> 形式使用。
角色模型(企业版)
| 角色 | 说明 |
|---|---|
admin | 管理员:全部权限,含用户/租户/审计/配额管理 |
user | 普通用户:对话、Agent、知识库等核心功能 |
viewer | 观察者:只读访问 |